컨스트레인트(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 해놓은 것입니다.
즐거운 하루 되세요.....
'SQL > ORACLE' 카테고리의 다른 글
[Oracle]sql문 실행시 실행계획을 보는방법 (0) | 2014.02.12 |
---|---|
[Oracle]실행계획을 보는 방법 (0) | 2014.02.12 |
[Oracle]시퀀스(Sequence) 만들기 (0) | 2014.02.12 |
[Oracle]딕셔너리를 이용한 Constraint 이름 확인하기 (0) | 2014.02.12 |
[Oracle]테이블 만들때 Constraint 추가하기 (0) | 2014.02.12 |
[ORACLE]OVER함수를 이용한 SQL문 (0) | 2014.02.12 |
[ORACLE] LEAST함수를 이용한 SQL문 (0) | 2014.02.12 |
[ORACLE]COUNT(DECODE.....)를 이용한 SQL문 (0) | 2014.02.12 |