SQL/개념

08. 데이터 정의어(DDL)

Merware 2023. 5. 9. 10:08

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

DDL은 데이터베이스의 스키마 정의 및 구조 변경을 위한 SQL 명령어들로, 주로 테이블, 인덱스, 뷰 등의 객체를 생성, 수정, 삭제할 때 사용됩니다. 주요 명령어는 CREATE, ALTER, DROP, TRUNCATE, RENAME 등이 있습니다.

1. CREATE: 테이블 생성

CREATE TABLE 명령어를 통해 테이블을 생성합니다.

-- EMP 테이블 생성
CREATE TABLE EMP (
    EMPNO NUMBER(4) PRIMARY KEY,   -- 사원 번호
    ENAME VARCHAR2(10),            -- 사원 이름
    JOB VARCHAR2(9),               -- 직업
    MGR NUMBER(4),                 -- 관리자 번호
    HIREDATE DATE,                 -- 입사 날짜
    SAL NUMBER(7, 2),              -- 급여
    COMM NUMBER(7, 2),             -- 커미션
    DEPTNO NUMBER(2)               -- 부서 번호
);

2. ALTER: 테이블 수정

ALTER TABLE 명령어를 사용해 기존 테이블 구조를 변경할 수 있습니다. 열 추가, 열 이름 변경, 열 삭제 등의 작업을 수행할 수 있습니다.

-- EMP 테이블에 열 추가 (보너스 열 추가)
ALTER TABLE EMP ADD BONUS NUMBER(7, 2);

-- EMP 테이블의 열 이름 변경 (ENAME을 EMP_NAME으로 변경)
ALTER TABLE EMP RENAME COLUMN ENAME TO EMP_NAME;

-- EMP 테이블에서 열 삭제 (BONUS 열 삭제)
ALTER TABLE EMP DROP COLUMN BONUS;

3. DROP: 테이블 삭제

DROP TABLE 명령어를 사용해 테이블을 완전히 삭제합니다. 이 명령어는 테이블뿐만 아니라 테이블에 저장된 모든 데이터도 함께 삭제합니다. 복구가 불가능하므로 주의가 필요합니다.

-- EMP 테이블 삭제
DROP TABLE EMP;

4. TRUNCATE: 테이블 초기화

TRUNCATE TABLE 명령어는 테이블의 모든 데이터를 삭제하지만 테이블 구조는 그대로 유지합니다. DELETE FROM과 달리 트랜잭션 로그를 남기지 않아 속도가 빠르고, 복구가 불가능합니다.

-- EMP 테이블의 모든 데이터 삭제 (테이블 구조는 유지)
TRUNCATE TABLE EMP;

1) DROP TABLE vs TRUNCATE TABLE vs DELETE FROM

  • DROP TABLE: 테이블과 그 안의 데이터를 모두 삭제. 테이블의 정의(구조) 자체가 제거됨.
  • TRUNCATE TABLE: 테이블 구조는 남겨두고 데이터만 삭제. DELETE보다 빠름.
  • DELETE FROM: 테이블의 특정 행 또는 전체 데이터를 삭제하지만, 테이블 구조는 유지. 트랜잭션 로그가 남기 때문에 롤백 가능.

5. RENAME: 테이블 이름 변경

RENAME 명령어를 사용해 기존 테이블의 이름을 변경할 수 있습니다.

-- EMP 테이블의 이름을 EMP_TEMP로 변경
RENAME EMP TO EMP_TEMP;