夜はプリズムのファンタジ

Database/Database 정리

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

Ju Hyun AN 2021. 2. 19. 12:27

 

저번 DML(데이터 조작어)에 이어서, 오늘은 DDL(데이터 정의어)에 대해서 알아보고자 한다.

 

DDL은 Data Definition Language의 약자로, '데이터를 정의하는 SQL언어'라고 볼 수 있다.

 

종류로는 아래 4가지를 소개할 수 있겠다.


✔  DDL(데이터 정의어)의 종류

 

• CREATE (생성)

• ALTER (수정)

• DROP (삭제)

• TRUNCATE (삭제, 초기화)

 

위의 내용들을 하나씩 알아보도록 하자.

 

 

⑴ CREATE (생성)

 

CREATE는 DB, 테이블 등을 생성하는 용도로 사용된다.

 

테이블을 생성할 때는, 테이블 명을 시작으로, 테이블에 포함 시키고자 하는 필드(컬럼)명, data 타입, NULL 유무 등 다양한 옵션들이 추가되게 된다.

 

즉, 테이블의 역할을 고려하여, 위 조건들을 셋팅하는 것이 중요하다.

 

CREATE TABLE 테이블명(

    필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
    
    필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
    
    필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
    
    ........... 
    
    PRIMARY KEY(필드명)
    
    );

 

 

⑵ ALTER (수정)

 

ALTER는 테이블을 수정하는 용도로 사용된다.

 

즉, 테이블과 관련된 모든 내용을 수정할 때는 ALTER를 사용하게 된다.

 

예를 들면, 테이블명이나 컬럼명 또는 컬럼 타입 등을 변경하고자 할 때에도 모두 사용된다.

 

(1) ALTER TABLE 테이블명;

		→ 테이블명 변경

(2) ALTER TABLE 테이블명 CHANGE [기존 컬럼명] [변경할 컬럼명] [타입];

		→ 컬럼명 및 컬럼 타입 변경
        
(3) ALTER TABLE 테이블명 MODIFY [컬럼명] [변경할 타입];

		→ 컬럼 타입 변경
        
(4) ALTER TABLE 테이블명 ALTER COLUMN [컬럼명] SET DEFAULT [디폴트값];

		→ 컬럼 디폴트값 변경
        
(5) ALTER TABLE 테이블명 MODIFY COLUMN [컬럼명] [컬럼 타입] AFTER [다른 컬럼];

		→ 컬럼 위치를 다른 컬럼 다음으로 이동

 

 

⑶ DROP (삭제)

 

DROP 데이터베이스와 테이블을 삭제하는 용도로 사용된다.

 

하지만,  제약조건이 걸려있는 경우에는 삭제 되지 않을 수 있는데 이런 경우에는 테이블 생성 순서 반대로 삭제를 진행해야 한다.

 

또한 ALTER문에서는 테이블을 수정하는 과정에서 컬럼을 삭제하기 위해 사용되기도 한다.

 

(1) DROP TABLE 테이블명;

		→ 모든 테이블을 삭제한다.

(2) ALTER TABLE 테이블명 DROP 컬럼명;

		→ 테이블 내 컬럼을 삭제한다.

 

 

⑷ TRUNCATE (초기화)

 

TRUNCATE는 테이블 내 data를 초기화하는 용도로 사용된다.

 

자세히는, 테이블이 다시 DROP → CREATE 되는 과정을 거치므로서, 테이블 내에 존재하는 모든 data가 삭제되는 것이다.

 

얼핏 보면, DELETE문과 동일해 보일 수 있지만, DELETE문은 WHERE절을 사용하여, 한 줄씩 data 삭제가 가능한 반면, TRUNCATE는 조건절 없이 한번에 초기화를 진행한다는 점에서 차이점이 있다.

 

또한, TRUNCATE는 테이블 삭제를 거치면서, 기존 data가 존재했던 공간도 제거해버리므로서, 명령어 속도에서도 DELETE보다 빠르다고 볼 수 있다.

 

TRUNCATE TABLE 테이블명;

		→ 테이블 데이터를 초기화(DROP 후 CREATE)한다.

 

 

오늘은 DDL(데이터 정의어)에 대해서 알아보았다.

 

모든지, 직접 해보는 것이 머리에 남는 것이고, 잘못된 것이 있어도 바로 잡을 수 있을 것이다.

 

다음엔 DCL(데이터 제어어)에 대해 정리하는 시간을 가져 볼 것이다.

 

 


 

 

이 블로그는 개인이 혼자 공부해가며 내용을 정리하는 용도로 활용되고 있습니다.

잘못된 지식이나 이론을 게시하지 않도록 주의하고 있습니다.