제약조건은 단순 암기보다 역할을 연결해서 이해하는 것이 중요합니다. 식별, 참조 무결성, 필수 입력, 도메인 제한 같은 관점으로 나누면 정리가 빨라집니다.
핵심 체크포인트
- PRIMARY KEY는 식별, FOREIGN KEY는 참조 관계를 담당합니다.
- UNIQUE와 NOT NULL은 중복과 필수 입력을 구분해서 봐야 합니다.
- CHECK는 허용 값 범위를 제한할 때 사용합니다.
주제별 설명
PRIMARY KEY
행을 유일하게 식별하는 핵심 제약조건입니다.
- 중복 불가와 NULL 불가 성격을 함께 가집니다.
- 테이블당 대표 식별 기준이라고 생각하면 이해가 쉽습니다.
FOREIGN KEY
다른 테이블의 키를 참조해 관계를 유지하는 제약조건입니다.
- 부모-자식 테이블 관계를 설명할 때 핵심입니다.
- 참조 무결성이라는 표현으로 함께 기억하면 좋습니다.
UNIQUE
중복 값을 허용하지 않는 제약조건입니다.
- PRIMARY KEY와 달리 일반적으로 NULL 허용 여부를 별도로 볼 수 있습니다.
- 보조 식별자 후보 개념으로 자주 등장합니다.
NOT NULL
값이 반드시 존재해야 하는 컬럼에 적용하는 제약조건입니다.
- 필수 입력 여부를 가장 직접적으로 표현합니다.
- PRIMARY KEY도 결국 NOT NULL 성격을 내포합니다.
CHECK
허용 가능한 값 범위나 조건을 제한하는 제약조건입니다.
- 상태값, 점수 범위, 플래그 값 제한에 적합합니다.
- 도메인 무결성을 설명할 때 함께 연결하면 좋습니다.
실습 흐름 추천
- 식별과 참조 무결성을 PRIMARY KEY와 FOREIGN KEY로 먼저 구분합니다.
- UNIQUE와 NOT NULL의 차이를 NULL 허용 여부 중심으로 비교합니다.
- CHECK는 허용 범위 제약이라는 문장으로 정리하면 기억하기 쉽습니다.
바로 이어서 해보려면
이론만 읽지 말고 바로 blacksql.sqld.kr에서 실행해보고, 문제 풀이 감각은 www.sqld.kr에서 이어가면 학습 속도가 훨씬 빨라집니다.
자주 묻는 질문
둘 다 중복을 막지만, PRIMARY KEY는 대표 식별자 역할을 하며 일반적으로 NULL을 허용하지 않는다는 점이 핵심 차이입니다.
테이블 간 관계를 강제해 잘못된 참조를 막고 데이터 일관성을 유지하기 때문입니다.