2024. 6. 5. 19:00ㆍSQL
제약 조건 (CONSTRAINTS)
- 사용자가 원하는 조건의 데이터만 유지하기 위해 특정 컬럼에 설정하는 제약
- 데이터 무결성 보장을 목적으로 함
입력 데이터에 문제가 없는지 자동으로 검사하는 목적
데이터 수정 / 삭제 가능 여부 검사 등을 목적으로 함
-> 제약조건을 위배하는 DML 구문은 수행할 수 없음
종류
PRIMARY KEY, NOT NULL, UNIQUE, CHECK, FOREIGN KEY
확인
-- USER_CONSTRAINTS : 사용자가 작성한 제약 조건을 확인하는 딕셔너리 뷰
OWNER : 유저 아이디
CONSTRAINTS_NAME : 제약 조건 이름
CONSTRAINTS_TYPE : 제약 조건 유형
C : CHECK
P : PRIMARY KEY
U : UNIQUE
R : FOREIGN KEY
V : VIEW
O : 읽기 전용 뷰
TABLE NAME : 제약 조건이 적용된 테이블 이름
NOT NULL
해당 컬럼에 반드시 값이 존재해야하는 경우 사용
삽입 / 수정시 NULL 값을 허용하지 않도록 컬럼 레벨에서 제한
UNIQUE
- 컬럼에 입력 값에 대해 중복을 제한하는 제약 조건
- 컬럼 레벨에서 설정 가능, 테이블 레벨에서 설정 가능
- 단, UNIQUE 제약 조건이 설정된 컬럼에 NULL 값 한 번 삽입 가능
- 유니크 컬럼이 여러개면 각 컬럼마다 NULL이 들어가도 됨
PRIMARY KEY(기본키)
- 테이블에서 한 행의 정보를 찾기 위해 사용할 컬럼을 의미
- 테이블에 대한 식별자(IDENTIFIER) 역할을 함
- NOT NULL + UNIQUE의 의미
- 한 테이블 당 한 개만 설정 가능
- 컬럼 레벨, 테이블 레벨 둘 다 설정 가능
- 한 개 컬럼에 설정할 수 있고, 여러개의 컬럼을 묶어서 설정할 수 있음
UNIQUE / PK 차이점
UNIQUE : NULL 값이 한 개는 허용되나 두 개 이상 안됨
PRIMARY KEY : NULL 값 불가능, 중복 불가능
FOREIGN KEY(외부키)
- 참조된 다른 테이블의 컬럼이 제공하는 값만 사용할 수 있음
- 삭제하는 데 있어 에러가 자주 발생
- CASCADE : 부모키 삭제시 참조하는 자식의 행도 모두 삭제
- 삭제는 아니고 메뉴들을 NULL 값으로 변경하고 싶다면 NULL 적용
'SQL' 카테고리의 다른 글
SEQUENCE (0) | 2024.06.07 |
---|---|
DDL(ALTER) +DROP (0) | 2024.06.07 |
DDL(CREATE) (0) | 2024.06.05 |
조건문 (0) | 2024.06.05 |
트랜잭션 (0) | 2024.06.05 |