DDL 이란?
- Data Definition Language
-
데이터 정의어
-
데이터베이스 객체(table, view, index 등)의 구조를 정의
- 테이블을 생성, 칼럼 추가, 타입 변경, 제약조건을 지정하거나 수정할 때 사용
DB 생성, 변경, 삭제, 사용
create database testdb;
alter database testdb default character set uft8mb4 collate utf8mb4_general_ci;
drop database testdb;
use testdb;
Table 생성하기
CREATE TABLE countries
( country_id CHAR(2) NOT NULL
, country_name VARCHAR(40)
, region_id INT
, CONSTRAINT country_c_id_pk
PRIMARY KEY (country_id)
);
- 각 칼럼을 선언하고 마지막에 primary key로 쓸 칼럼을 지정
CREATE TABLE countries
( country_id CHAR(2) NOT NULL PRIMARY KEY
, country_name VARCHAR(40)
, region_id INT
, CONSTRAINT country_c_id_pk
);
- 칼럼 선언하면서 primary key 선언
추가적인 속성들(attributes)
- PRIMARY KEY : 테이블에서 행을 고유하게 식별하기 위해 사용 (반적으로 ID 번호, AUTO INCREMENT와 같이 사용되는 경우가 많다)
- NOT NULL : 각 행은 해당 열의 값을 포함, null 값 허용하지 않음
- DEFAULT value : 값이 전달되지 않을 때, 추가되는 기본 값을 해당 값으로 설정
- UNSIGNED : type이 숫자인 경우만 해당되며 숫자가 0 또는 양수로 제한
- AUTO INCREMENT : 새 레코드가 추가 될 때마다 필드 값을 자동으로 1씩 증가
Table 생성시 제약 조건
- 컬럼에 저장될 데이터의 조건을 설정
- 제약조건을 설정하면 조건에 위배되는 데이터는 저장 불가
- 테이블 생성시 컬럼에 직접 지정하거나 constraint로 지정, 또는 ALTER을 이용하여 설정
- NOT NULL : 칼럼에 NULL 값을 저장할 수 없다. 반드시 쿼리문을 이용하여 값을 설정해야함
- UNIQUE : 칼럼에 중복된 ㄱ밧을 저장할 수 없지만, NULL은 허용
- PRIMARY KEY(기본키) : 컬럼에 중복된 값을 저장할 수 없고, NULL도 허용하지 않음 → NOT NULL + UNIQUE 주로 유일한 row 값을 지정할 때 사용
- FOREIGN KEY(참조키, 외래키) : 특정 테이블의 PRIMARY KEY 컬럼에 저장되어 있는 값만 저장, references를 이용해 어떤 컬럼에 어떤 데이터를 참조하는지 반드시 지정해야 함
- DEFAULT : NULL 값이 들어올 경우 기본 설정되는 값을 지정