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보다 커야 하는 조건 추가