-- 60P
-- not null
-- 제약 조건
CREATE TABLE ex2_6(
COL_NULL VARCHAR2(10)
, COL_NOT_NULL VARCHAR2(10) NOT NULL
);
INSERT INTO ex2_6 VALUES ('AA', '');
INSERT INTO ex2_6 VALUES ('AA', 'BB');
SELECT * FROM ex2_6;
-- USER CONSTRAINTS 제약 조건 확인
SELECT constraint_name, constraint_type, table_name, search_condition
FROM user_constraints
WHERE table_name = 'EX2_6';
-- UNIQUE
-- 중복값 허용 안 함
CREATE TABLE ex2_7 (
COL_UNIQUE_NULL VARCHAR2(10) UNIQUE
, COL_UNIQUE_NULL VARCHAR2(10) UNIQUE NOT NULL
, COL_UNIQUE VARCHAR(10)
, CONSTRAINTS unique_nm1 UNIQUE (COL_UNIQUE)
);
SELECT constraint_name, constraint_type, table_name, search_condition
FROM user_constraints
WHERE table_name = 'EX2_7';
SELECT * FROM ex2_7;
INSERT INTO ex2_7 VALUEs('AA', 'AA', 'AA');
SELECT * FROM ex2_7;
INSERT INTO ex2_7 VALUES('AA', 'AA', 'AA');
SELECT * FROM ex2_7;
INSERT INTO ex2_7 VALUES('', 'BB', 'BB');
INSERT INTO ex2_7 VALUES('', 'CC', 'CC');
SELECT * FROM ex2_7;
-- 기본키 ( 63P)
CREATE TABLE ex2_8(
COL VARCHAR2(10) PRIMARY KEY
, COL2 VARCHAR2(10)
);
SELECT constraint_name, constraint_type, table_name, search_condition
FROM user_constraints
WHERE table_name = 'EX2_8';
INSERT INTO ex2_8 VALUES('','AA');
-- 오류 보고 ORA-01400: NULL을 ("ORA_USER"."EX2_8"."COL") 안에 삽입할 수 없습니다
-- NULL 값을 삽입하여 생기는 오류이다. NULL값 대신 다른 값을 입력하자.
— 오류 보고 ORA-01400: NULL을 ("ORA_USER"."EX2_8"."COL") 안에 삽입할 수 없습니다