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;