728x90
반응형

컨스트레인트(CONSTRAINTS) 는 사용자가 미리 정의한 내용에 따라서 데이터를 검사하고, 잘못된

데이터가 입력되면 트랜젝션을 롤백하고, 사용자에게 에러 메세지를 보여줍니다.

다음은 CONSTRAINTS 지정의 몇가지 예입니다.

 

1) NOT NULL CONSTRAINTS

정의 한 필드에 NULL 값을 허용하지 않는 조건을 지정합니다.

 

Example)

create table temp

(...

phone_no varchar2(10) CONSTRAINTS phone_idx NOT NULL,

...);

 

 

2) Unique Key CONSTRAINTS

중복 데이터를 허용하지 않는 조건을 지정합니다.

따로 NOT NULL 컨스트레인트를 지정하지 않으면 NULL 값은 허용됩니다.

 

Example)

create table temp

(...

phone_no varchar2(10) CONSTRAINTS phone_idx UNIQUE

CONSTRAINTS phone_null_chk NOT NULL, -- NOT 과 함께 지정할시...

...);

 

3) PRIMARY key CONSTRAINTS

중복데이터를 허용하지 않는 동시에 NULL 값도 허용하지 않는 조건을 지정합니다.

 

Example)

create table temp

(...

phone_no varchar2(10) CONSTRAINTS phone_idx PRIMARY KEY

USING INDEX TABLESPACE ts_temp, -- index를 생성할 테이블 스페이스를 지정한예

...);

 

4) FOREIGN key CONSTRAINTS

하나의 테이블에 사용되는 Primary Key 가 다른 테이블에 존재할경우 이를 Foreign Key 라고 합니다.

예를 들면 emp 테이블의 사원의 1년 연봉을 입력해놓은 테이블 pay 가 있다고 가정할때

이 pay 테이블의 사원번호는 반드시 emp 테이블에 있는 사원번호중의 하나이어야 하는거죠...

이럴때 pay 테이블을 생성할때 이 컨스트레인트를 사용할수 있습니다.

 

Example)

create table pay

(...

empno NUMBER(5) CONSTRAINTS empno_idx REFERENCES emp(empno),

...);

 

 

5) CHECK CONSTRAINTS

Check 컨스트레인트는 사용자가 원하는 조건식을 정의 할수 있습니다.

다음의 예는 Pay 테이블의 pay 필드에 허용하는 값은 1600~2400으로 제한 하는 경우 입니다.

 

Example)

create table pay

(...

pay number(10) CONSTRAINTS pay_chk CHECK (pay BETWEEN 1600 AND 2400),

...);

 

 

Example2)

create table pay

(...

name varchar2(20) CONSTRAINTS chk_name CHECK (name = UPPER(name)) DISABLE);

위의 예는 name 필드에 반드시 대문자만 허용하며 생성만 하고 DISABLE 해놓은 것입니다.

 

즐거운 하루 되세요.....

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,