1 minute read

❤️ Postgresql 기준으로 작성된 예시입니다.

DDL 이란?

Image

테이블 스키마를 정의하고, 테이블, 컬럼명을 입력, 변경, 삭제하는 명령어

CTAS

select 문의 결과를 다른 테이블로 복사하여 저장

C : Create
T : Table
A : AS
S : SELECT

-- 문법
CREATE TABLE {새 테이블 명} AS
    /* 새테이블에 붙여넣을 쿼리 */
    SELECT *
    FROM {table_name}
    WHERE ~ 
;


Auto - Increment

기본키 자동증가 기존 컬럼에 Auto-increment 적용은 Sequence를 생성하여 적용한다. 자세한 내용은 Auto_increment 추가 글을 참고.

/* 1. 기존 테이블에 Auto-increment 컬럼 추가 (primary key로) */
ALTER TABLE {기존 테이블명} 
ADD COLUMN {새 컬럼명} SERIAL PRIMARY KEY;

/* 2. 테이블 생성하면서 Auto increment 선언 */
CREATE TABLE {새 테이블명}(
{새 컬럼명} SERIAL PRIMARY KEY
......
);


TABLE

Table 명 변경

1. public schema일 경우

ALTER TABLE {기존 테이블명}
RENAME TO {새 테이블명};

2. public schema가 아닐 경우

# public schema 아닐 경우
ALTER TABLE {schema}.{기존 테이블명}
RENAME TO {새 테이블명};

변경할 테이블 지정할 때 스키마 명시해주면 된다.
변경하고자하는 테이블명(새 테이블명)에는 스키마 명시해주지 않아도 됨.
스키마는 그대로 유지된다.

COLUMN

Column 추가

ALTER TABLE {테이블명}
ADD COLUMN {새 컬럼명};

Column 삭제

ALTER TABLE {테이블명}
DROP COLUMN {버릴 컬럼명};

Column 명 수정

ALTER TABLE {테이블명}
RENAME COLUMN {현재 컬럼명} TO {바꿀 컬럼명};

Column 타입 변경

ALTER TABLE {테이블명}
ALTER COLUMN {컬럼명} TYPE {바꿀 데이터타입};

Column 제약 조건

  • Primary Key 추가
    ALTER TABLE {테이블명} 
    ADD CONSTRAINT {PK Name} PRIMARY KEY ({key1},{key2}..);
    
  • Primary Key 삭제
    ALTER TABLE {테이블명} 
    DROP PRIMARY KEY;
    

Row

Row 삭제

DELETE 
FROM {테이블명}
WHERE {조건절};