728x90
오라클 제약조건
제약조건 Constraints은
컬럼에 대한 속성 형태로 정의하지만 엄연히 오라클 데이터베이스 객체 중 하나이며,
데이터 무결성을 보장하기 위한 용도로 사용된다.
제약조건에는 NOT NUL, UNIQUE, 기본키, 외래키, CHECK등이 있다.
NOT NULL
컬럼명 데이터타입 NOT NULL
컬럼을 정의할 때 NOT NULL 제약조건을 명시하면 해당 컬럼에는 반드시 데이터를 입력해야 한다.
즉 반드시 값이 들어 있어야 하는 컬럼에는 NOU NULL제약조건을 만들어 사용한다.
입력
CREATE TABLE EX01_1 (
H_NULL VARCHAR2(10),
H_NOT_NULL VARCHAR2(10) NOT NULL
);
결과
TABLE EX01_1이 생성되었습니다.
NOT NULL 컬럼에 데이터를 넣지 않을 때 오류 발생
예)
입력
INSERT INTO EX01_1 VALUES ('AA','');
결과
SQL 오류: ORA-01400: NULL을 ("USER"."EX01_1"."H_NOT_NULL") 안에 삽입할 수 없습니다.
NOTT NULL 컬럼에 데이터를 다시 넣고 실행하면 오류가 안난다.
입력
INSERT INTO EX01_1 VALUES ('AA','BB');
결과
1개 행이 삽입되었습니다.
제약조건은 컬럼 속성처럼 보이지만 하나의 데이터베이스 객체이므로 고유의 이름이 있는데 별도로 이름을 명시하지 않으면 오라클에서 자동으로 생성해 준다. 사용자가 생성한 제약조건은 USER_CONSTRAINTS 시스템 뷰에서 확인할 수 있다.
입력
SELETE CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAEM, SERCH_CONDITION
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'EX01_1';
결과
CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME SEARCH_CONDITION
--------------- --------------- ---------- ----------------
SYS_C0011298C EX01_1 "H_NOT_NULL" IS NOT NULL
EX01_1 테이블의 H_NOT_NULL 컬럼에 부여한 NOT NULL 제약조건이 SYS_C0011298란 이름으로 생성됐음을 확인할 수 있다.

728x90
'DataBase > Oracle' 카테고리의 다른 글
[Oracle] 오라클 제약조건 : 기본키 (0) | 2023.09.20 |
---|---|
[Oracle] 오라클 제약조건 : UNIQUE (0) | 2023.09.18 |
[Oracle] 오라클(Oracle) 데이터 타입 ( 문자, 숫자, 날짜, LOB ) (2) | 2023.09.13 |
[Oracle] 오라클(Oracle) 테이블 생성 (5) | 2023.09.13 |
[Oracle] Oracle(오라클) 연산자 종류와 설명 (0) | 2023.06.13 |