Data base
CHECK
연93
2022. 10. 14. 16:32
-- CHECK
/*
컬럼에 입력되는 데이터를 체크해 특정 조건에 맞는 데이터만 입력 받고 그렇지 않으면 오류를 뱉어 낸다.
CONSTRAINT 체크명 CHECK(체크조건)
*/
-- 제약조건객체도 데이터베이스 객체. 구성요소중 하나이다.
CREATE TABLE ex2_9 (
num1 NUMBER
CONSTRAINTS check1 CHECK ( num1 BETWEEN 1 AND 9), -- 이름 생성없다면 CONSTRAINTS check1 빼기
gender VARCHAR2(10)
CONSTRAINTS check2 CHECK ( gender IN ('MALE', 'FEMALE'))
);
-- 앞의 CONSTRAINTS check1 제약이 생성되어 있으므로, 아래구문에서 CONSTRAINTS check1 제약조건으로 또 생성할수없다
CREATE TABLE ex2_9_2 (
num1 NUMBER
CONSTRAINTS check1 CHECK ( num1 BETWEEN 1 AND 9),
gender VARCHAR2(10)
CONSTRAINTS check2 CHECK ( gender IN ('MALE', 'FEMALE'))
);
SELECT constraint_name, constraint_type, table_name, search_condition
FROM user_constraints
WHERE table_name = 'EX2_9';
-- gender IN ('MALE', 'FEMALE')
INSERT INTO ex2_9 VALUES (10, 'MAN'); -- 'MAN' 에러
-- num BETWEEN 1 AND 9
INSERT INTO ex2_9 VALUES (10, 'MALE'); -- 10 에러
INSERT INTO ex2_9 VALUES (5, 'FEMALE'); --성공