본문 바로가기
Database

[MariaDB] DDL

by qoth_0 2023. 11. 22.
728x90
반응형

  • 데이터베이스 (스키마) 생성

CREATE DATABASE 데이터베이스이름;

  • 데이터베이스 삭제

DROP DATABASE 데이터베이스이름;

  • 데이터베이스 선텍

USE 데이터베이스이름;

  • 데이터베이스 생성 후 확인

SHOW DATABASES;

  • 테이블 생성

CREATE TABLE 테이블이름 { 필드이름1 필드타입1 [제약조건], 필드이름1 필드타입2 [제약조건], ... [테이블 제약조건] }

→ 제약조건 추가 방법 (두 가지 방법이 있다~ 정도로만 생각해두면 될 듯)

  • 필드에 제약조건 해당 필드에 적용할 제약조건을 선택적으로 지정가능
  • 테이블 제약조건 테이블 전체에 적용될 제약조건을 선택적으로 지정가능
  • 테이블 생성 후 확인

SHOW TABELS;

  • 컬럼 정보 조회

DESCRIBE author;

  • 컬럼 정보 상세 조회

SHOW FULL COLUMNS FROM author;

  • 테이블 생성문 조회 - 중간에 ALTER하다보면 변경이 많이 돼서 마지막에 라이브서버에 올릴 때의 편리함을 위해 사용

show create table posts;

  • 참조관계 및 제약조건 정보조회

select * FROM INFORMATION_SCHEMA KEY_COLUMN_USAGE WHERE TABLE_NAME = ‘posts’;

주요 제약조건(pk, fk) → index가 자동 생성

-제약조건 정보조회와 인덱스 조회는 상당수 일치

index란 조회 성능을 위한 목차 페이지

show index from 테이블명; : 인덱스 조회

DDL -CREATE

CREATE TABELE 테이블이름 {

}

DDL - ALTER : 테이블 정보 변경

  • 테이블 이름 변경
    • ALTER TABLE 테이블명 RENAME 새로운테이블명;
    • ALTER TABLE posts RENAME post;
  • 컬럼 추가 (Add)
    • ALTER TABLE 테이블명 ADD COLUMN 컬럼명 자료형 [NULL 또는 NOTNULL]
  • 컬럼 타입 변경 (Modify)
    • ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 타입 [제약조건];
  • 컬럼 이름 변경 -> 이름만 바꾸고 싶을땐 RENAME ~ TO 사용
    • ALTER TABLE 테이블명 CHANGE COLUMN 기존컬럼명 새로운컬럼명 타입 [제약조건];
  • 컬럼 삭제
    • ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

DDL - DROP

데이터베이스 삭제

DROP DATABASE 데이터베이스명

테이블 삭제

DROP TABLE 테이블이름

테이블 데이터만을 지우고 싶을때

DELETE FROM 테이블이름;

TRUNCATE TABLE 테이블이름; - 이게 더 빠름

IF EXISTS

특정 객체(예: 데이터베이스 또는 테이블) 가 존재하는 경우에만 명령어를 실행

DROP DATABASE 또는 TABLE IF EXISTS abc;

DDL 실습

ctrl+enter하면 한줄씩 적용 가능

  • 게시판 데이터베이스 생성

CREATE DATABASE board;

  • 테이블 생성
  1. author 테이블
CREATE TABLE  author(

id INT, 

name VARCHAR(100) not null, 

email VARCHAR(255), 

password VARCHAR(255), 

role VARCHAR(50), 

address VARCHAR(255), 

PRIMARY KEY(id)

);

→ PRIMARY KEY를 적용한 컬럼에 대해서는 unique, not null 제약조건 부여

  1. post 테이블
CREATE TABLE post(

id INT PRIMARY KEY, 

title VARCHAR(255), 

contents VARCHAR(3000), 

author_id INT, 

FOREIGN KEY(author_id) REFERENCES author(id)

);

→ author_id는 author테이블의 id를 참조한 것

→ 외래키가 설정되면 author, post테이블 데이터의 생성 삭제, 수정에 대해 제약이 발생 만약 not null 조건이 있다면 author_id가 없는 데이터는 post에 생성 불가 author가 삭제될 때 post에 데이터가 남아있으면 author 삭제 불가 author의 id가 수정될때 post에 데이터가 남아있으면 author 수정 불가 -> 삭제, 수정에 대해서는 기본적으로 제약(restrict제약)을 갖고 있으나, 옵션을 줘서 변경가능

?? restrict??


Uploaded by N2T

728x90
반응형

'Database' 카테고리의 다른 글

[MariaDB] 제약조건  (0) 2023.11.22
[MariaDB] 연산자  (1) 2023.11.22
[MariaDB] 데이터타입  (0) 2023.11.22
[MariaDB] DML  (1) 2023.11.22
[MariaDB] 설치, MariaDB란  (1) 2023.11.22