[DataBase] DDL이란 무엇인가? 테이블 생성 및 컬럼 관리법


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);

참고

참고 블로그1
참고 블로그2




© 2018. by statssy

Powered by statssy