[DataBase] DDL이란 무엇인가? 테이블 생성 및 컬럼 관리법
in Development on DataBase
DDL이란 무엇인가? 테이블 생성 및 컬럼 관리법 정리
DDL이란?
- DDL 이란 : Data Definition Language로 데이터 정의 언어
테이블 생성(CREATE TABLE)
- 테이블 생성시에는
CREATE TABLE
을 쓰면 된다. - 아래 예시에서는
if not exists
를 써서 테이블이 없을 경우 추가하는 식으로 했다. primary key
를 id와 name으로 복합키를 넣었다.- 제약조건 종류
- PRIMARY KEY : 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 기본키를 정의. 자동으로 UNIQUE 인덱스, NOT NULL이 된다.
- UNIQUE KEY : 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키를 정의. NULL 행은 여러개가 될 수 있다.
- NOT NULL : NULL 값의 입력을 금지
- CHECK : 입력할 수 있는 값의 범위 등을 제한
- FOREIGN KEY : 테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사하는 경우를 의미
- DEFAULT : 정의시 컬럼에 데이터값이 입력되지 않은 경우 정의된 값이 자동으로 입력
create table if not exists users_pay_plans
(
id bigint auto_increment,
name varchar(32) not null,
price int not null,
max_count bigint not null,
max_size bigint not null,
updated_at datetime default CURRENT_TIMESTAMP null,
created_at datetime default CURRENT_TIMESTAMP null,
constraint users_pay_plans_PK primary key(id, name)
);
create table if not exists users
(
id bigint auto_increment primary key,
email varchar(64) not null,
pw varchar(256) not null,
payplan_id bigint not null,
status varchar(32) default 'ACTIVE' null,
is_admin tinyint(1) default 0 null,
updated_at datetime default CURRENT_TIMESTAMP null,
created_at datetime default CURRENT_TIMESTAMP null
);
칼럼을 추가/삭제하고 제약조건 추가/삭제 (ALTER TABLE)
- 컬럼을 추가하고 제약조건 추가 등등
ALTER TABLE
로 간단히 할 수 있다.
-- 컬럼 추가(ADD)
ALTER TABLE [테이블명] ADD COLUMN [컬럼명] [타입]
ALTER TABLE users ADD COLUMN payplan_id INT;
-- 특정 컬럼 뒤에 추가(ADD)
ALTER TABLE [테이블명] ADD COLUMN [추가할컬럼명] [컬럼타입] DEFAULT [기본값] [컬럼위치]
ALTER TABLE users ADD COLUMN payplan_id varchar(32) DEFAULT NULL AFTER pw;
-- 컬럼 타입 변경(MODIFY)
ALTER TABLE [테이블명] MODIFY [컬럼명] [타입]
ALTER TABLE users MODIFY COLUMN payplan_id VARCHAR(55);
-- 여러 개 컬럼 한번에 변경(MODIFY)
ALTER TABLE users
MODIFY COLUMN payplan_id INT(6),
MODIFY COLUMN pw VARCHAR(11);
-- 컬럼 삭제
ALTER TABLE [테이블명] DROP [컬럼명]
ALTER TABLE users DROP COLUMN payplan_id;
-- Primary Key(PK) 설정
ALTER TABLE [테이블명] ADD PRIMARY KEY (Key 설정 컬럼 명01, Key 설정 컬럼 명02)
ALTER TABLE users ADD PRIMARY KEY (id);