Oracle #2 : 제약 조건 설정 (CONSTRAINT), PRIMARY KEY, UNIQUE KEY, NOT NULL,CHECK

반응형

PRIMARY KEY

테이블에 저장된 레코드를 고유하게 식별하기 위한 키, 하나의 테이블에 하나의 기본키만 정의할 수 있습니다.

여러 필드가 조합된 기본키 생성 가능합니다. 기본키는 중복된 값을 가질 수 없으며 빈칸도 있을 수 없습니다.

PRIMARY KEY = UNIQUE KEY + NOT NULL

#1. 테이블 생성과 함께 PRIMARY KEY 생성

create table 테이블명(  필드명 데이터타입, constraint 제약조건명 primary key( 필드명 ) );

#2. 생성된 테이블에 PRIMARY KEY 제약조건 추가

alter table 테이블명 add constraint primary key(필드명);

생성예시

--#1 테이블 생성시 primary key 생성
create table cafe(
	menuNum varchar2(5) not null,
	constraint cafe_pk primary key( menuNum )
);
--#2 테이블 생성 후 primary key 추가
alter table cafe add constraint primary key(menuNum);

#2 방법으로 primary key를 추가할때 필드 값에 중복된 값이나, null값이 있다면 primary key가 추가되지 않습니다

 

UNIQUE KEY

테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키를 정의합니다.

중복된 값을 저장할 수 없도록 제한하는 역할을 하는 제약조건입니다.

단 NULL 은 고유키 제약의 대상의 아니므로, NULL값을 가진 행이 여러 개가 UNIQUE KEY  제약에   위반하지는 않습니다

#1-1 테이블 생성시 uinque key 생성, 제약조건명 없음

create table 테이블명(  필드명 데이터타입 unique );

#1-2 테이블 생성시 uinque key 생성, 제약조건명 있음

create table 테이블명(필드명 데이터타입 constraint 제약조건명 unique)

#1-3 테이블 생성시 uinque key 생성, 제약조건명 있음

create table 테이블명(필드명1 데이터타입,
	constraint 제약조건명 unique(필드명1))

#2. 테이블 생성 후 unique 제약조건 추가

alter table 테이블명 constraint 제약조건명 unique(필드명) ;

생성예시

--#1 테이블 생성시 unique key 생성
create table cafe(
	menuNum varchar2(5) unique , --#1-1
	menuName varchar2(50) constraint uk unique , --#1-2
	menuPrice number(6),
	stock number(4) default 0 ,
	constraint uk2 unique(menuPrice) --#1-3
);
--#2 테이블 생성 후 unique key 추가
alter table cafe constraint uk3 unique(stock) ;

 

 

NOT NULL

비어있는 상태, 아무것도 없는 상태를 허용하지 않음, 입력 필수

#1. 테이블 생성시 not null 제약조건 생성

create table 테이블명(필드명 데이터타입 not null);

#2. 테이블 생성 후 not null 제약조건 추가

alter table 테이블명 modify 필드명 not null;

생성예시

----#1 테이블 생성시 not null 제약조건 생성
create table cafe(
	menuNum varchar2(5) not null
);
----#2 테이블 생성 후 not null 제약조건 추가
alter table cafe modify menuNum not null;

 

CHECK

입력할 수 있는 값의 범위를 제한 CHECK 제약으로는 TRUE or FALSE로   평가할 수 있는 논리식을  지정합니다  

#1. 테이블 생성시 check 제약조건 생성

create table 테이블명( 필드명 데이터타입 constraint 제약조건명 check(제약조건);

#2 . 테이블 생성 후 check 제약조건 추가

alter table 테이블명 add constrant 제약조건명 check(제약조건);

생성예시

--#1 테이블 생성시 check 제약조건 추가
create table cafe(
	menuPrice number(6) constraint price check(menuPrice>=0) 
);
--#2 테이블 생성 후 check 제약조건 추가
alter table cafe add constraint price check(menuPrice>=0);

 

반응형