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);
'DB > Oracle' 카테고리의 다른 글
ORA-12899: value too large for column (2) | 2022.06.30 |
---|---|
Oracle Error: ORA-00927: missing equal sign (0) | 2022.06.21 |
Oracle #4 : Alter를 이용한 테이블의 수정, 필드의 추가 및 자료형 변경 (0) | 2022.06.20 |
Oracle #3 : 시퀀스 생성(Sequence) (0) | 2022.06.14 |
Oracle #1 : 테이블의 생성과 삭제, Create table and Drop table (0) | 2022.06.09 |