Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL

DBMS 데이터 정의 명령어(DDL) 총정리 – CREATE부터 RENAME까지

데이터 정의 명령어(DDL, Data Definition Language)는 스키마, 테이블, 뷰(View), 인덱스(Index) 등 데이터베이스 객체를 생성하고, 수정하고, 삭제하는 데 사용되는 SQL 명령어입니다. DDL은 데이터베이스의 구조 자체를 다루기 때문에, 데이터를 조작하는 DML(Data Manipulation Language)과 구분됩니다.

이 글에서는 대표적인 데이터 정의 명령어인 CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME의 개념과 문법, 그리고 실제 사용 예제를 살펴보겠습니다.

1. CREATE – 테이블 생성

CREATE 명령어는 데이터베이스에 새로운 테이블을 만들 때 사용합니다. 미리 정의된 문법에 따라 컬럼(열) 이름과 각 컬럼의 데이터 타입을 지정합니다.

문법

CREATE TABLE <테이블 이름>
( <컬럼 이름> <데이터 타입>,
<컬럼 이름> <데이터 타입>,
<컬럼 이름> <데이터 타입>,
<컬럼 이름> <데이터 타입>
);

예제

학생 이름(student name)과 학번(roll number) 컬럼을 가진 STUDENT 테이블을 생성해 보겠습니다.

CREATE TABLE STUDENT
(STUDENT_NAME VARCHAR(30),
ROLL_NUMBER INT
);

위 문장을 실행하면 최대 30자의 문자열을 저장할 수 있는 STUDENT_NAME 컬럼과 정수형 ROLL_NUMBER 컬럼으로 구성된 빈 테이블이 만들어집니다.

2. ALTER – 기존 객체 수정

ALTER 명령어는 이미 존재하는 데이터베이스 객체의 구조를 변경할 때 사용합니다. 테이블에 대해 다음과 같은 작업을 수행할 수 있습니다.

  • 새로운 컬럼 추가
  • 새로운 무결성 제약조건(Integrity Constraint) 추가
  • 기존 컬럼 수정
  • 무결성 제약조건 삭제

문법

ALTER 명령어의 일반적인 문법은 아래와 같습니다.

새로운 컬럼 추가하기

ALTER TABLE <table_name> ADD <column_name>

테이블 이름 변경하기

ALTER TABLE <table_name> RENAME TO <new_table_name>

컬럼 수정하기

ALTER TABLE <table_name> MODIFY <column_name> <data type>

컬럼 삭제하기

ALTER TABLE <table_name> DROP COLUMN <column_name>

예를 들어, STUDENT 테이블에 이메일 컬럼을 추가하려면 다음과 같이 작성할 수 있습니다.

ALTER TABLE STUDENT ADD EMAIL VARCHAR(50);

3. DROP – 객체 삭제

DROP 명령어는 인덱스, 테이블, 뷰 등 관계형 데이터베이스 관리 시스템(RDBMS)의 구성 요소를 삭제할 때 사용합니다. 한 번 삭제된 객체는 복구할 수 없으며, 해당 객체가 저장 공간까지 함께 제거된다는 점에서 TRUNCATE와 차이가 있습니다.

DROP 명령어의 일반적인 문법은 다음과 같습니다.

DROP TABLE <table_name>;
DROP DATABASE <database_name>;
DROP INDEX <index_name>;

4. TRUNCATE – 전체 데이터 삭제

TRUNCATE 명령어는 테이블의 모든 레코드(데이터)를 삭제하지만, 테이블의 구조 자체는 그대로 유지합니다. 즉, 테이블은 남아 있고 내용만 비워지는 것입니다.

문법

TRUNCATE TABLE <table_name>

DROP이 테이블 구조까지 제거한다면, TRUNCATE는 구조를 보존한 채 데이터만 삭제한다는 점이 핵심 차이입니다.

5. COMMENT – 주석 추가

COMMENT 명령어는 데이터 사전(Data Dictionary)에 주석을 추가할 때 사용합니다. SQL 코드 내에서 주석을 작성하는 방법은 다음과 같습니다.

  • 한 줄 주석: 주석 앞에 '--'를 붙입니다.
  • 여러 줄 주석: '/*'와 '*/' 사이에 주석 내용을 작성합니다.
-- 한 줄 주석 예시
/* 여러 줄
   주석 예시 */

6. RENAME – 객체 이름 변경

RENAME 명령어는 테이블, 뷰 등 데이터베이스 객체의 이름을 변경할 때 사용합니다.

문법

RENAME <old_name> TO <new_name>

예를 들어 STUDENT 테이블의 이름을 LEARNER로 바꾸려면 다음과 같이 실행합니다.

RENAME STUDENT TO LEARNER;

마무리

DDL 명령어는 데이터베이스의 뼈대를 설계하고 관리하는 필수 도구입니다. CREATE로 구조를 만들고, ALTER로 수정하며, DROP과 TRUNCATE로 삭제하는 흐름을 정확히 이해해 두면 실무에서 데이터베이스를 다룰 때 큰 도움이 됩니다. 특히 DROP과 TRUNCATE의 차이, 그리고 삭제된 객체는 복구할 수 없다는 점은 반드시 기억해 두시기 바랍니다.