본문 바로가기
BackEnd/DB, SQL

SQL 16편: 데이터 정의어 DDL(CREATE, ALTER, RENAME, TRUNCATE, DROP)

by summer_light 2022. 1. 9.

데이터 정의어 DDL(Data Definition Language)

- 객체의 생성/변경/삭제 관련 기능 수행

- DML(데이터 조작어)와 달리 명령어를 수행하자마자 DB에 수행한 내용이 바로 반영된다(즉 바로 COMMIT 되는 것이며, ROLLBACK이 불가하다). 대표적으로 CREATE, ALTER가 있다. 

 

 

 


CREATE

테이블을 생성하는 명령어

CREATE TABLE 소유계정.테이블 이름(열이름1 열1자료형, 열이름2 열2자료형, .... );

 

테이블 이름 생성 규칙

1. 테이블 이름은 문자로 시작해야 한다.

2. 30byte 이하여야 한다.

3. 같은 사용자 소유의 테이블 이름은 중복될 수 없다

4. 특수문자는 $, #, _ 를 사용할 수 있다.

5. SQL 키워드는 테이블 이름으로 사용할 수 없다.

6.  대소문자를 구별하여 테이블 이름을 지정할 때에는 테이블 이름에 큰 따옴표 " "를 사용하면 된다. 

 

열 이름 생성 규칙

- 열 이름 생성 규칙도 위의 테이블 이름 생성 규칙과 비슷하다.

- 열을 생성할 때, 자료형을 작성할 때에는 NUMBER(4,2)와 같이 데이터 길이를 지정할 수 있다. NUMBER(4,2)는 소수점 이하 2자리를 포함하여 전체 자릿수가 4자리라는 의미이다.

 

응용1. CREATE문에 서브쿼리를 사용할 때는 AS키워드를 함께 사용한다.

CREATE TABLE A
AS SELECT * FROM B;

 

응용1. 열 구조만 복사하고 싶은 경우 WHERE 조건식이 항상 FALSE가 되도록 한다. 

CREATE TABLE A
AS SELECT * FROM B
WHERE 1<>1 ;

 

 

 

 

ALTER 

이미 생성된 객체를 변경할 때 사용하며, 목적에 따라 ADD, DROP 등의 키워드와 함께 사용한다.

- 새 열의 추가/삭제

- 열의 자료형/길이 변경

 

열을 추가하고 싶을 때: ADD 키워드

ALTER TABLE 테이블이름
ADD 열이름 자료형(길이);

 

열을 삭제하고 싶을 때: DROP 키워드

ALTER TABLE 테이블이름
DROP COLUMN 열이름

 

열이름을 변경하고 싶을 때: RENAME COLUMN 키워드

ALTER TABLE 테이블이름
RENAME COLUMN (기존)열이름 TO (변경할)열이름

 

자료형을 변경하고 싶을 때: MODIFY 키워드

ALTER TABLE 테이블이름
MODIFY 열이름 자료형(길이);

 

 

 

 

RENAME

테이블 이름을 변경하고 싶을 때 사용한다.

RENAME 테이블이름1 TO 테이블이름2

 

 

 

 

 

TRUNCATE

테이블의 모든 데이터를 삭제하고 싶을 때 사용한다.

데이터만 삭제하므로 테이블 구조에는 영향을 주지 않는다. 

TRUNCATE TABLE 테이블이름;

 

 

 

 

DROP

객체를 삭제할 때 사용한다.

DROP TABLE 테이블이름;

 

 

 

* DDL 뒤에 TABLE 과 같이 객체 타입을 명시하는 경우는 다른 객체가 올 수도 있다는 뜻이다. 

 

 

 

 

 

 

 

 

댓글