본문 바로가기

프로그래밍/SQL

[SQL 요약 정리] 1-11. 데이터 정의어(DDL)

11. 데이터 정의어(DDL)


1) 명령어의 종류 및 설명

- CREATE TABLE: 테이블 생성

- DROP TABLE: 테이블의 구조 및 모든 행 삭제

- ALTER TABLE: 테이블 변경(컬럼-> 추가, 수정 / 제약조건-> 추가, 삭제, 활성화, 비활성화)

- TRUNCATE: 테이블의 구조만 남기고 모든 행 삭제

- RENAME: Object의 이름 변경

- COMMENT: 테이블 혹은 컬럼에 주석 달기

*주의: DDL 명령어는 실행시 자동 COMMIT 후 ROLLBACK불가


2) 테이블 삭제 DROP TABLE  

- 문형

DROP TABLE 테이블명 [CASCADE CONSTRAINTS];

- 테이블의 모든 데이터 및 인덱스 삭제, 트랜잭션 자동 commit, ROLLBACK 불가

- [CASCADE CONSTRAINTS] : 종속된 제약조건 삭제


3) 컬럼의 추가 ALTER(ADD)

- 문형

ALTER TABLE 테이블명

ADD (컬럼 datatype [DEFAULT 형식][CONSTRAINT 정의] [,컬럼 datatype]...);


4) 컬럼의 수정 ALTER(MODIFY)

- 문형

ALTER TABLE 테이블명

MODIFY (컬럼 datatype [DEFAULT 형식][NOT NULL제약조건] [,컬럼 datatype]...);

- 칼럼의 크기, 기본값, NOT NULL 제약조건 변경 가능(단 NULL이 없을 때)

- 칼럼이 NULL 혹은 데이터가 없을 때 크기 축소 혹은 데이터타입 변경 가능

- DEFAULT 변경시 다음 입력 때 부터 적용


5) Constraint(제약조건)의 변경

- 제약조건 추가

ALTER TABLE 테이블명

ADD [CONSTRAINT 제약조건명] 제약조건유형 (칼럼명);

- 제약조건 변경

ALTER TABLE 테이블명

DROP CONSTRAINT 제약조건명 [CASCADE];

- 제약조건 활성화

ALTER TABLE 테이블명

ENABLE CONSTRAINT 제약조건명;

- 제약조건 비활성화

ALTER TABLE 테이블명

DISABLE CONSTRAINT 제약조건명 [CASCADE];


6) 그 외의 DDL

- RENAME 이전이름 TO 새로운이름; // Object의 이름 변경

테이블, VIEW, SEQUENCE, SYNONYM의 이름 변경(객체 소유자만 가능)

- TRUNCATE TABLE 테이블명; // 테이블의 구조만 남기고 모든 행 삭제

TRUNCATE명령 -> ROLLBACK 불가 / DELETE명령 -> ROLLBACK 가능

- COMMENT ON TABLE 테이블명 IS '주석문장' ;

- COMMENT ON COLUMN 테이블명.컬럼명 IS '주석문장' ;