본문 바로가기

데이터베이스

oracle - constraint (제약 조건)

Constraint(제약 조건)이란??????

 

> 테이블을 올바른 데이터만 입력받고 잘못된 데이터는 들어오지 못하도록 칼럼마다 정하는 규칙이다.

 


 

Constraint(제약 조건)의 특징은??????

 

>데이터 무결성을 보장하기 위한 용도

 

> 칼럼에 대한 속성 정의

 

> 테이블이나 속성에 적절치 않은 데이터가 들어오는 것을 방지하기 위한 규칙을 정하는 것

 

> 데이터베이스의 객체, 고유의 이름(제약 조건 명)을 지정 

 

> 사용자가 지정하지 않는 경우 , oracle이 자동으로 부여

 

 


Constraint(제약 조건) 종류??????

 

NOT NULL 조건 설정된 컬럼에 NULL 값이 입력되지 못하도록 설정
UNIQUE 조건 설정된 컬럼에 중복된 값이 입력되지 못하도록 설정
PRIMARY KEY NOT NULL+UNIQUE의 특징을 가지며, 테이블 내에서 데이터들끼리의 유일성을 보장하는 컬럼에 설정, 그리고 테이블당 1개만 설정 가능
FOREIGN KEY 다른 테이블의 컬럼을 참조해서 검사
CHECK  조건에서 설정된 값만 입력을 허용하고 나머지는 거절

 


 

NOT NULL

 

>NOT NULL의 경우 칼럼에만 적용 가능, 테이블은 불가능

 

> NOT NULL 제약 조건을 명시하면 해당 칼럼에는 반드시 데이터를 입력

 

> 데이터가 들어있어야만 하는 칼럼에 명시

 

 

 

NULL값을 받을 수 없어서 오류 발생


 

UNIQE

 

>해당 칼럼에 들어가는 값 , 테이블 전체에서 유일(중복 X)

 

>NOT NULL 과 함께 사용 가능

 

 

 

 

값이 중복되기 때문에 오류

 

 


PRIMARY KEY

 

>기본키 제약조건

 

>UNIQUE + NOT NULL의 형태

 

>테이블 당 1개의 기본키만 생성 가능

 

>여러 칼럼을 묶어 하나의 기본키로 만드는 것 가능(최대 32개 까지 가능)

 

>기본키는 데이터 무결성을 지켜주는 역할

 

 

 

 


 

FOREIGN KEY

 

>외래키 제약조건

 

>테이블 간 참조 무결성  보장

 

>참조 관계가 있는 테이블의 데이터 추가, 삭제, 수정을 통제

 

>참조하는 테이블이 먼저 생성되어 있어야 함

 

>여러 개의 칼럼을 외래키 지정시,참조당한 테이블의 기본키와 칼럼 개수 및 순서가 같아야 함

 

>외래 키가 참조하는 칼럼은 참조하는 테이블의 PRIMARY KEY이어야 함

 

>32개의 칼럼만 가능

 


 

 

CHECK

 

> 칼럼에 입력되는 데이터를 CHECK, 미리 지정된 조건에 맞을 경우에만 입력을 허락하고, 아니면 오류 발생

 

 

 

1부터 9까지 사이에 숫자를 벗어난 10을 넣었기 때문에 오류 발생!

 

정상적으로 값이 들어감

 


 

따라 해 보면 금방 늘 겁니다!