* CHECK(조건식) 제약조건
해당 컬럼에 들어올 수 있는 값에 대한 조건을 제시해둘 수 있음
해당 조건에 만족하는 데이터값만 담길 수 있음
CREATE TABLE MEM_CHECK(
MEM_NO NUMBER NOT NULL,
MEM_ID VARCHAR2(20) NOT NULL UNIQUE,
MEM_PWD VARCHAR2(20) NOT NULL,
MEM_NAME VARCHAR2(20) NOT NULL,
GENDER CHAR(3) CHECK (GENDER IN('남', '여')),
PHONE VARCHAR2(13),
EMAIL VARCHAR2(50)
--CHECK(GENDER IN ('남', '여')) -- 테이블 레벨 방식
);
INSERT INTO MEM_CHECK VALUES(1, 'user01', 'pass01', '손흥민', '남', null, null);
INSERT INTO MEM_CHECK VALUES(2, 'user02', 'pass02', '이강인', 'ㄴ', null, null);
--ORA-02290: check constraint (DDL.SYS_C007146) violated
-- CHECK 제약조건에 위배됐기 때문에 오류 발생
INSERT INTO MEM_CHECK VALUES(2, 'user02', 'pass02', '이강인', null, null, null);
-- 만일 GENDER 컬럼에 데이터 값을 넣고자 한다면 CHECK 제약조건에 만족하는 값을 넣어야됨
-- NOT NULL 아니면 NULL 도 가능하긴함!!
INSERT INTO MEM_CHECK
VALUES (2, 'user03', 'pass03', '이승우', '여', null, null);
-- 회원번호가 동일해도 성공적으로 insert 돼버림 즉, 기본키를 사용해야된다
기본키 지정하는 방법
2023.07.28 - [IT/Oracle] - [Oracle] CONSTRAINT(제약조건)_PRIMARY KEY