DDL
❤️ Postgresql 기준으로 작성된 예시입니다.
DDL 이란?
테이블 스키마를 정의하고, 테이블, 컬럼명을 입력, 변경, 삭제하는 명령어
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 {조건절};