- Data Definition Language
- 테이블과 관련 열을 생성하고 변경하고 삭제하는 명령어
- 커밋하지 않아도 데이터베이스에 즉각 반영되며 데이터 사전에 기록됨
- CREATE, ALTER, DROP이 대표적인 명령어
CREATE DATABASE 데이터베이스 이름; # Database 를 생성하는 명령어
SHOW DATABASES; # 현재 MySQL 에 저장되어있는 데이터베이스를 보는 명령어
USE 데이터베이스 이름; # 생성한 데이터베이스에 접근하는 명령어
SHOW tables; # 현재 데이터베이스 안에 저장되어있는 테이블들을 보는 명령어
CREATE TABLE 테이블 이름
(
id INT NOT NULL AUTO_INCREMENT, # id 칼럼을 정수, NULL 을 허락하지 않으며 값을 자동증가하게 설정
name VARCHAR(100) NOT NULL, # name 칼럼을 100의 크기를 가지는 문자열, NULL 을 허락하지 않음
PRIMARY KEY (id) # 이 테이블의 Primary Key 를 id 로 설정
); # 쿼리문은 ; 로 구분되기 때문에 엔터를 쳐서 쿼리문을 멀티라인으로 작성할 수 있음
DESC 테이블 이름; #Description 을 축약해 놓은 명령어, 테이블의 정보를 보여줌
이미 생성한 테이블에 열을 추가, 변경, 삭제하여 테이블 구조 변경
테이블에 새로운 필드 추가
ALTER TABLE 테이블 이름
ADD ( 열 이름 1 데이터 타입,
열 이름 2 데이터 타입,
…
);
새로 생성되는 열은 위치를 지정할 수 없음(테이블의 마지막에 위치)
테이블에 이미 행이 있다면 열을 추가했을 때 새로운 열의 데이터 값은 null로 초기화
열의 정의를 수정. 열의 수정 대상은 열의 데이터 타입과 크기, Default Value
ALTER TABLE 테이블 이름
MODIFY ( 열 이름 1 데이터 타입,
열 이름 2 데이터 타입,
…
);
열 이름을 수정
ALTER TABLE 테이블 이름 RENAME COLUMN 열 이름 1 to 바꾸려는 열 이름 1;
열 삭제
ALTER TABLE 테이블 이름 DROP COLUMN 열 이름;
- 테이블의 데이터를 모두 삭제하고 사용하던 기억 공간도 해제
- 테이블에 생성된 인덱스와 같은 객체도 같이 삭제
- 테이블의 구조는 삭제되지 않음
TRUNCATE TABLE 테이블 이름;
데이터베이스 삭제
DROP DATEBASE 데이터베이스 이름;
- 테이블을 완전히 삭제
- 테이블을 삭제할 때 데이터베이스는 테이블에 있는 모든 자료와
그와 연관된 모든 인덱스를 삭제하고 사용하고 있던 저장 공간을 돌려줌- 트랜잭션이 자동으로 커밋
- 모든 인덱스와 제약 조건이 삭제
DROP TABLE 테이블 이름;