제약 조건은 컬럼에 대한 속성 형태로 정의하지만 오라클 객체중 하나이며 데이터 무결성을 보장하기 위한 용도로 사용한다. 종류로는 NOT NULL,UNIQUE,기본키,외래키,CHECK등이 있다.
- NOT NULL : 빈값으로 넣지 못하게 제약조건
- UNIQUE : 해당 컬럼에 들어가는 값이 유일.중복 불가능하게 만드는것(NULL은 비교대상에서 제외)
- 기본키(PK - primary key) : UNIQUE와 NOT NULL속성을 동시에 가진 제약조건으로 테이블당 1개만 생성 가능
- 외래키(FK - Foreign key) : 테이블간의 참조 데이터 무결성을 위한 제약조건이다.
- CHECK : 컬럼에 입력되는 데이터를 체크해 특정 조건에 맞는 데이터만 입력 받고 그렇지 않으면 오류를 뱉어낸다.
제약 조건은 컬럼 속성처럼 보이지만 하나의 데이터 베이스객체로 고유 이름이 있는데 별도로 이름을 명시하지 않으면 오라클에서 자동으로 생성한다.
사용자가 생성한 제약조건은 USER_CONSTRAINTS시스템 VIEW에서 확인이 가능하다.
※확인 쿼리
SELECT constraint_name, constraint_type, table_name, search_condition FROM user_constraints WHERE TABLE_NAME='테이블이름';
TEST_6테이블의 "COL_NOT_NULL" IS NOT NULL제약 조건이 SYS_C007019란 이름으로 생성되어있다.
아래와 같이 CONSTRAINTS로 이름을 붙이면 이름이 나온다.
CREATE TABLE TEST_7 (
COL_TEST_UNIQUE_NULL VARCHAR2(10) UNIQUE,
COL_TEST_UNIQUE_NNULL VARCHAR2(10) UNIQUE NOT NULL,
COL_TEST_UNIQUE VARCHAR2(10),
CONSTRAINTS UNIQUE_TEST_NM1 UNIQUE ( COL_TEST_UNIQUE)
);
※참고로 NULL은 UNIQUE비교 대상에서 제외되는 기억해 놓는게 좋다.
'DB > ORACLE' 카테고리의 다른 글
7.[오라클]뷰 정리 (1) | 2024.01.17 |
---|---|
6.[오라클]테이블 및 칼럼 관련 정리 (0) | 2024.01.17 |
4.[오라클]타입관련 정리 (1) | 2024.01.07 |
3.[오라클]기본개념 정리 (0) | 2024.01.07 |
2.[오라클]dump import (0) | 2024.01.07 |