DDL 과 제약 조건: CREATE · ALTER · PK · FK · UNIQUE · CHECK · DEFAULT
지금까지의 레슨은 이미 있는 테이블에서 값을 조회·가공하는 DML 을 다뤘습니다. 이 레슨은 테이블 자체를 만들고 고치는 DDL(CREATE·ALTER·DROP·TRUNCATE)과, 잘못된 데이터가 아예 들어오지 못하게 막는 제약 조건(PK·UNIQUE·NOT NULL·CHECK·DEFAULT·FK)을 다룹니다. DB 마다 컬럼을 바꾸는 문법이 다르고, UNIQUE 의 NULL 처리·CHECK 적용 시점처럼 겉보기엔 같아 보여도 동작이 갈리는 지점이 있어 하나씩 실행해 확인합니다.
1. 왜 배우는가
SELECT·INSERT·UPDATE·DELETE 로 데이터를 다루기 전에, 그 데이터가 담길 테이블의 구조부터 있어야 합니다. 신규 기능을 붙이려고 컬럼을 추가하거나, 운영 중 자료형을 넓히거나, 임시 테이블을 만들고 지우는 작업은 실무에서 DML 만큼 자주 나옵니다.
제약 조건은 "이 값은 절대 비면 안 된다", "이 컬럼은 중복되면 안 된다", "이 자식 행은 존재하는 부모를 가리켜야 한다" 같은 규칙을 애플리케이션 코드가 아니라 DB 자체가 지키게 만듭니다. 애플리케이션 버그나 배치 스크립트 실수로 잘못된 값이 들어오려 해도, 제약 조건이 걸려 있으면 DB 가 그 순간 거부합니다.
이 레슨은 CREATE TABLE 로 컬럼과 자료형을 정하고, ALTER TABLE 로 컬럼을 추가·수정·이름 변경하는 방법을 먼저 봅니다. 이어서 PK·UNIQUE·NOT NULL·CHECK·DEFAULT·FK 여섯 가지 제약 조건을 하나씩 위반해 보면서 각각이 실제로 무엇을 막는지, DROP·TRUNCATE 의 차이와 Oracle·MySQL·MSSQL 문법 차이는 무엇인지 확인합니다.