DataBase > Oracle/Tibero

제약 (Constraint type) 종류 및 추가/삭제하기

constraint type 의 종류

CONSTRAINT_TYPE 설명  
C Check on a table, Check, Not NULL Column
O Read Only on a view Object
P Primary Key Object
R Referential AKA Foreign Key Column
U Unique Key Column
V Check Option on a view Object

제약추가

기본키등록

ⓐ <field_name> data_type primary key
ⓑ ,constraint <constraint_name> primary key(<field_list>)
alter table <table_name> add constraint <constraint_name> primary key(<field_list>);

ⓐ 테이블생성시 필드 뒤에 바로 지정
ⓑ 테이블생성시 필드를 다 지정한 후에 맨 마지막에 한꺼번에 지정
ⓒ 나중에 기본키를 지정하는 방법

외래키등록

ⓐ <field_name> data_type foreign key references <table_name>(<field_name>)
ⓑ ,constraint <constraint_name> foreign key(<field_list>) references <table_name>(<field_list>)
alter table <table_name> add constraint <constraint_name> foreign key(<field_list>) references <table_name>(<field_list>);

ⓐ 테이블생성시 필드 뒤에 바로 지정
ⓑ 테이블생성시 필드를 다 지정한 후에 맨 마지막에 한꺼번에 지정
ⓒ 나중에 기본키를 지정하는 방법

UNIQUE 등록

ⓐ <field_name> data_type unique
ⓑ ,constraint <constraint_name> unique (<field_list>)
alter table <table_name> add constraint <constraint_name> unique (<field_list>);

ⓐ 테이블생성시 필드 뒤에 바로 지정
ⓑ 테이블생성시 필드를 다 지정한 후에 맨 마지막에 한꺼번에 지정
ⓒ 나중에 기본키를 지정하는 방법

CHECK 등록

ⓐ <field_name> data_type check
ⓑ ,constraint <constraint_name> check (<조건식>)
alter table <table_name> add constraint <constraint_name> check (<field_list>);

※ 나이는 20~60 이고 성별은 남/여 라는 글자만 들어갈 수 있다.
,age int check (age >=20 and age <=60)
,gender varchar2(10) check ( gender in ('남','여'))
constraint ck_age_man check (age >= 20 and age <=60 and gender in ('남','여'))

ⓐ 테이블생성시 필드 뒤에 바로 지정
ⓑ 테이블생성시 필드를 다 지정한 후에 맨 마지막에 한꺼번에 지정
ⓒ 나중에 기본키를 지정하는 방법

default 등록/삭제

ⓐ <field_name> data_type default <default_value>
alter table <table_name> alter column <field_name> set default <default_value>;

ⓐ 테이블생성시 필드 뒤에 바로 지정
ⓒ 나중에 기본키를 지정하는 방법

※ 삭제하는 방법
alter table <table_name> alter column <field_name> drop default;

※ 참고로 오라클(Oracle)에서의 설정/해제는
alter table <table_name> modify (<filed_nam> data_type default <default_value>)  -- 설정
alter table <table_name> modify (<filed_nam> data_type default null)  -- 해제
​​​​

제약삭제 (delete constraint)

alter table <table_name> drop constraint <constraint_name>