반응형
목차
5. 관리구문
5-2. DDL
5-2-1. 참조 무결성 제약조건
5-2-2. DELETE / MODIFY ACTION
5-2-3. INSERT ACTION
5-2-4. DROP / TRUNCATE / DELETE 차이
5. 관리구문
5-2. DDL
1️⃣ 참조 무결성 제약조건
참조 무결성이란 부모 테이블과 자식 테이블 간의 관계를 유지하여 데이터의 일관성과 무결성을 보장하기 위한 제약조건이다.
즉, 데이터의 입력 / 수정 / 삭제 과정에서 잘못된 참조가 발생하지 않도록 DBMS가 관리한다.
💡 일반적으로 참조되는 테이블을 부모, 참조하는 테이블을 자식이라고 한다.
2️⃣ DELETE / MODIFY ACTION
부모 테이블의 데이터를 삭제(DELETE)하거나 수정(UPDATE)할 때 자식 테이블을 어떻게 처리할 것인지 지정하는 옵션이다.
| 제약조건 | 설명 |
| CASCADE | 부모 데이터가 삭제(또는 수정)되면 자식 데이터도 함께 삭제(또는 수정)된다. |
| SET NULL | 부모 데이터가 삭제(또는 수정)되면 자식의 외래키(FK)를 NULL로 변경한다. |
| SET DEFAULT | 부모 데이터가 삭제(또는 수정)되면 자식의 외래키를 기본값(DEFAULT)으로 변경한다. |
| RESTRICT | 자식 테이블에서 참조 중인 데이터가 있으면 부모 데이터를 삭제하거나 수정할 수 있다. |
| NO ACTION | 참조 무결성을 위반하면 작업이 실패하며 아무런 변경도 수행하지 않는다. |
💡 SQLD에서는 CASECADE와 RESTRICT의 차이를 자주 묻는다.
3️⃣ INSERT ACTION
부모 테이블에 해당 PK가 존재하지 않을 경우 자식 테이블의 INSERT를 어떻게 처리할 것인지 지정하는 옵션이다.
| 제약조건 | 설명 |
| AUTOMATIC | 부모 테이블에 PK를 자동 생성한 후 자식 테이블에 데이터를 입력한다. |
| SET NULL | 부모 테이블에 PK가 없으면 자식 테이블의 외래키(FK)에 NULL 값이 입력된다 |
| SET DEFAULT | 부모 테이블에 PK가 없는 경우 자식 테이블의 외래키를 기본값(DEFAULT)으로 입력한다. |
| DEPENDENT | 부모 테이블에 PK가 존재할 때만 자식 테이블에 값 입력을 허용한다. |
| NO ACTION | 참조 무결성을 위반하면 작업이 실패하며 아무런 변경도 수행하지 않는다. |
4️⃣ DROP / TRUNCATE / DELETE 차이
| 구분 | DROP | TRUNCATE | DELETE |
| 문법 | DROP TABLE 테이블명 | TRUNCATE TABLE 테이블명 | DELETE FROM 테이블명 |
| SQL 종류 | DDL | DDL | DML |
| 동작 | 테이블 자체를 삭제 (스키마 포함) |
테이블 구조는 유지하되, 모든 데이터를 삭제하여 초기 상태로 리셋 | 테이블 구조는 유지하되, 데이터만 삭제한다. (WHERE 절을 사용하여 특정 행만 삭제 가능) |
| WHERE 사용 | 불가능 | 불가능 | 가능 |
| 자동커밋 여부 | O | O | X |
| 디스크 공간 릴리즈 | O | O | X |
| 작업취소(UNDO)를 위한 로그 데이터 생성 여부 |
X | X | O |
🔗 출처
반응형
'자격증 > SQLD' 카테고리의 다른 글
| [SQLD][아이리포]30. 트랜잭션 | ACID 특성 | TCL | COMMIT | ROLLBACK (0) | 2026.08.17 |
|---|---|
| [SQLD][아이리포]27. 서브쿼리 | 정규표현식 (0) | 2026.08.13 |
| [SQLD][아이리포]26. 서브쿼리 | PIVOT | UNPIVOT (2) | 2026.08.09 |
| [SQLD][아이리포]25. 서브쿼리 | 계층형질의 | START WITH | CONENCT BY PRIOR | ORDER SIBLINGS BY (0) | 2026.08.08 |
| [SQLD][아이리포]24. 서브쿼리 | Top-N 쿼리 | ROWNUM | 순위함수 (0) | 2026.07.28 |