제약조건
1. not null// null값이 올수없음, 값을 무조건 세팅해줘야한다
*not null을 제외한 다른 제약조건들은 반드시 이름을 설정해줘야한다
왜냐면 정확히 어떤 오류라고 설명해주지 않음
2. unique// 중복된 값 저장불가능
create table test_table1(
data1 number,
data2 number constraint TEST_TABLE2_DATA2_UK unique
);
create table test_table3(
data1 number,
data2 number constraint TEST_TABLE3_DATA2_PK primary key
);
insert into test_table3 (data1, data2)
values (100, 101);
create table test_table4(
data1 number constraint TEST_TABLE4_PK primary key,
data2 number not null
);
insert into test_table4 (data1, data2)
values (100, 101);
insert into test_table4 (data1, data2)
values (200, 201);
select * from test_table4;
create table test_table5(
data3 number not null,
data4 number constraint TEST_TABLE5_DATA4_FK
references test_table4(data1)
);
// data1에는 100 과 200이 현재 들어가있음
insert into test_table5 (data3, data4)
values (1, 100);
insert into test_table5 (data3, data4)
values (2, 100);
// 중복허용
insert into test_table5 (data3, data4)
values (3, 200);
insert into test_table5 (data3, data4)
values (4, 200);
select * from test_table5;
insert into test_table5(data3, data4)
values (5, null);
insert into test_table5 (data3)
values (6);
// null값 허용
insert into test_table5(data3, data4)
values (7, 300);
// 300은 없는 값이라 위배됨 (부모 키가 없음)
create table test_table6(
data1 number constraint TEST_TABLE6_DATA1_CK
check (data1 between 1 and 10), //범위 조건
data2 number constraint TEST_TABLE6_DATA2_CK
check (data2 in (10, 20, 30)) // 값 지정
);
insert into test_table6 (data1, data2)
values (1, 10);
insert into test_table6 (data1, data2)
values (2, 20);
select * from test_table6;
insert into test_table6 (data1, data2)
values (20 10); // data1 위배
insert into test_table6 (data1, data2)
values (5, 100); // data2 위배