데이터베이스/SQL

SQL DDL 명령어

Blue_bull 2025. 2. 2. 23:48

SQL 명령어 정리: CREATE, DROP, ALTER

1. CREATE (테이블 및 제약조건 생성)

1.1 테이블 생성 및 기본 키(PRIMARY KEY) 생성

CREATE TABLE employees (
    emp_id NUMBER PRIMARY KEY,  -- 기본 키 생성
    name VARCHAR2(100) NOT NULL,
    department VARCHAR2(50)
);

1.2 외래 키(FOREIGN KEY) 생성

CREATE TABLE departments (
    dept_id NUMBER PRIMARY KEY,
    dept_name VARCHAR2(100) NOT NULL
);

CREATE TABLE employees (
    emp_id NUMBER PRIMARY KEY,
    name VARCHAR2(100) NOT NULL,
    dept_id NUMBER,
    CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);
  • FOREIGN KEY (dept_id)departments 테이블의 dept_id를 참조

2. DROP (테이블 삭제)

DROP TABLE employees;
  • employees 테이블을 완전히 삭제
  • 삭제된 테이블은 복구할 수 없음

3. ALTER (테이블 구조 변경)

3.1 컬럼 추가 (ADD COLUMN)

ALTER TABLE employees ADD salary NUMBER(10, 2);
  • 추가된 컬럼은 테이블의 마지막 컬럼으로 배치됨
  • 컬럼의 위치를 지정할 수 없음 (일부 DBMS에서는 지원 가능)

3.2 컬럼 삭제 (DROP COLUMN)

ALTER TABLE employees DROP COLUMN department;
  • 컬럼 삭제 후 복구할 수 없음
  • 일부 DBMS에서는 FLASHBACK 기능을 활용해 복구 가능

3.3 컬럼 변경 (MODIFY COLUMN)

ALTER TABLE employees MODIFY name VARCHAR2(200);
  • 컬럼의 크기를 늘릴 수 있음

3.4 기본값 변경 (MODIFY DEFAULT)

ALTER TABLE employees MODIFY salary DEFAULT 50000;
  • 새로운 기본값은 변경 후 추가되는 행부터 적용됨
  • 기존 데이터에는 영향 없음

3.5 컬럼명 변경 (RENAME COLUMN)

ALTER TABLE employees RENAME COLUMN name TO full_name;
  • ANSI/ISO 표준이 아님
  • Oracle, PostgreSQL 등 일부 DBMS에서 지원

3.6 제약 조건 삭제 (DROP CONSTRAINT)

ALTER TABLE employees DROP CONSTRAINT fk_dept;
  • 외래 키 등 기존 제약 조건 삭제

3.7 제약 조건 추가 (ADD CONSTRAINT)

ALTER TABLE employees ADD CONSTRAINT chk_salary CHECK (salary > 0);
  • salary 값이 0보다 커야 하는 조건 추가