DDL(Data Definition Language)
데이터베이스 및 테이블의 구조를 정의하거나 수정하는 명령문
- 명령문을 입력하면 DB에 즉시 반영된다. ※ Auto Commit
CREATE - 데이터베이스 및 테이블 생성
CREATE DATABASE 데이터베이스이름;
CREATE TABLE 테이블이름
(
컬럼이름1 컬럼타입1 제약조건,
컬럼이름2 컬럼타입2 제약조건,
...
[CONSTRAINT FK제약조건이름
FOREIGN KEY (컬럼이름)
REFERENCES 참조테이블이름(참조컬럼이름)]
);
제약조건
NOT NULL : 해당 컬럼은 항상 NULL이 아닌 값이 들어가야 한다.
UNIQUE(고유키) : 중복을 허용하지 않는다.
- 해당 컬럼은 중복된 값이 있으면 안된다.
- NULL이 들어갈 수 있다.
PRIMARY KEY(기본키) : NOT NULL과 UNIQUE를 섞은 개념
- 중복을 허용하지 않는다.
- NULL이 들어갈 수 없다.
FOREIGN KEY(외래키) : 다른 테이블의 PRIMARY KEY와 연결 되는 컬럼.
- 테이블 간의 관련성을 표기함으로써, 데이터의 무결성을 보장
- NULL이 들어갈 수 있다.
CHECK
- COLUMN에 들어갈 수 있는 값을 제한
- 범위를 지정하고 지정된 값 외에는 들어갈 수 없다.
- 중복 데이터가 들어갈 수 있다.
- NULL이 들어갈 수 있다.
ALTER - 데이터베이스 및 테이블 구조 수정
- ALTER RENAME : 테이블 이름, 컬럼 이름, 제약조건 이름 변경
- ALTER ADD : 테이블에 새로운 컬럼 추가, 새로운 제약조건 추가
- ALTER MODIFY : 테이블 컬럼의 데이터 유형(또는 크기) 변경
- ALTER DROP : 테이블에서 컬럼 삭제, 제약조건 삭제
ALTER TABLE 테이블이름 ADD 컬럼이름 컬럼타입;
ALTER TABLE 테이블이름 DROP 컬럼이름;
ALTER TABLE 테이블이름 MODIFY COLUMN 컬럼이름 컬럼타입;
TRUNCATE - 데이터베이스 및 테이블 초기화(데이터 초기화)
- 테이블을 삭제하지는 않고, 데이터만 전부 지운다. (테이블을 생성했을 때 상태로 되돌린다.)
- 롤백(Rollback) 불가능 (삭제 전으로 되돌릴 수 없다.)
TRUNCATE TABLE 테이블 이름;
DROP - 데이터베이스 및 테이블 삭제
- 테이블 구조를 제거한다. (테이블 자체가 없어진다)
- 롤백(Rollback) 불가능 (삭제 전으로 되돌릴 수 없다.)
- 저장공간 반납
DROP DATABASE 데이터베이스이름;
DROP TABLE 테이블이름;

참고자료
https://m.blog.naver.com/regenesis90/222200592868