본문 바로가기
SQL/기초

SQL 정리 11일차 데이터 정의어(DDL)

by 유서담 2023. 9. 1.

11.1 명령어의 종류

명령어 설 명
CREATE TABLE 새로운 테이블을 생성
DROP TABLE 기존 테이블의 구조 및 모든 행을 삭제
ALTER TABLE 기존 테이블을 변경
- 컬럼의 추가, 수정
- 제약조건 추가, 삭제, 활성화, 비활성화
TRUNCATE 기존 테이블의 구조는 남기고 모든 행을 삭제
RENAME Object의 이름을 바꿈
COMMENT 테이블이나 컬럼에 주석문 달기

명령어들은 모두 데이터 정의 명령어(DDL)로 실행시 자동 COMMIT 후에 ROLLBACK될 수 없으므로 주의해서 실행해야 한다

 

테이블 삭제 ( DROP TABLE )

DROP TABLE 테이블명 [CASCADE CONSTRAINTS] ;

- 모든 데이터가 테이블에서 삭제

- 트랜잭션은 자동 COMMIT

- 해당 테이블의 모든 인덱스가 삭제

- CASCADE CONSTRAINTS옵션은 종속된 제약조건을 삭제

- 이 명령은 ROLLBACK 할 수 없다

 

컬럼의 추가

ALTER TABLE 테이블명
ADD (컬럼 datatype [DEFAULT 형식][CONSTRAINT 정의]
    [, 컬럼 datatype] ...);

 

컬럼의 수정

ALTER TABLE 테이블명
MODIFY (컬럼 datatype [DEFAULT 형식][NOT NULL 제약조건]
      [, 컬럼 datatype] ...);

- 기존에 존재하는 컬럼에 대한 크기와 타입의 변경

- 컬럼의 크기, 기본값(default), NOT NULL 제약조건을 변경가능

- 컬럼이 NULL이거나 테이블에 데이터가 없을 때, 컬럼의 크기 축소 또는 데이터 타입의 변경이 가능

- DEFAULT를 변경하면 다음 입력 때부터 적용

- 컬럼에 NULL이 없을 때만 NOT NULL제약조건 추가기능

 

 

 

CONSTRAINT의 변경

 

제약조건의 추가

ALTER TABLE 테이블명
ADD [CONSTRAINT 제약 조건명] 제약조건유형 (컬럼명);

 

제약조건의 삭제

ALTER TABLE 테이블명
DROP CONSTRAINT 제약 조건명 [CASCADE];

 

제약조건의 활성화

ALTER TABLE 테이블명
ENABLE CONSTRAINT 제약 조건명;

 

제약조건의 비활성화

ALTER TABLE 테이블명
DISABLE CONSTRAINT 제약 조건명 [CASCADE];

 

 

그 외의 DDL

RENAME 이전이름 TO 새로운이름;

RENAME : OBJECT의 이름 변경

- 테이블, VIEW, SEQUENCE, SYNONYM의 이름을 바꾼다

- 객체의 소유자만이 바꿀 수 있음

 

TRUNCATE TABLE 테이블명;

TRUNCATE : 테이블의 구조를 남기고 모든 데이터 삭제하기

- 테이블의 모든 행을 삭제

- 테이블이 사용한 저장공간을 반환

- TRUNCATE 명령이 행의 삭제를 ROLLBACK 할 수 없는데 비해, DELETE 명령은 삭제된 행을 ROLLBACK 할 수 있다

 

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

'SQL > 기초' 카테고리의 다른 글

SQL 정리 10일차 DICTIONARY  (0) 2023.08.30
SQL 정리 9일차 TRANSACTION CONTROL  (0) 2023.08.29
SQL 정리 8일차 CONSTRAINT  (0) 2023.08.27
SQL 정리 7일차 SubQUERY  (0) 2023.08.25
SQL 정리 6일차 JOIN  (0) 2023.08.16