728x90
오라클 제약조건 : 기본키
제약조건 Constraints은
컬럼에 대한 속성 형태로 정의하지만 엄연히 오라클 데이터베이스 객체 중 하나이며,
데이터 무결성을 보장하기 위한 용도로 사용된다.
제약조건에는 NOT NUL, UNIQUE, 기본키, 외래키, CHECK등이 있다.
기본키
기본키라고도 하고 영어 그대로 ' Primary key '라고 한다.
보통 테이블에 키를 생성했다라고할 때, 이는 기본키를 의미한다.
기본키는 UNIQUE와 NOT NUL 속성을 동시에 가진 제약조건으로, 테이블 당 1개의 기본키만 생성할 수 있다.
컬럼명 데이터타입 PRIMARY KEY
혹은
CONSTRAINTS 제약조건명 PRIMARY KEY(컬럼명, ...)
입력
CREATE TABLE EX01_3 (
H1 VARCHAR2(10) PRIMARY KEY,
H2 VARCHAR2(10)
);
결과
TABLE EX01_3이 생성되었습니다.
입력
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION
FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'eX01_3';
결과
CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME SEARCH_CONDITION
--------------- --------------- ---------- ----------------
SYS_C0011180 P EX01_3
기본키는 CONSTRAINT_TYPE이 P(PRIMARY KEY)로 생성된다.
NULL 입력시 오류 발생
입력
INSERT INTO EX01_3 VALUES ('', 'AA');
결과
SQL 오류: ORA-01400: NULL을 ("ORA_USER"."EX01_3"."H1")안에 삽입할 수 없습니다.
기본키는 NOT NULL 속성이므로 NULL 입력이 불가능하다.
입력
INSERT INTO EX01_3 VALUES ('AA', 'AA');
결과
1개 행이 삽입되었습니다.
입력
INSERT INTO EX01_3 VALUES ('AA', 'AA');
결과
SQL 오류: ORA-00001: 무결성 제약 조건(ORA_USER.SYS_C0011180)에 위배됩니다.
값이 같은 데이터 역시 입력할 수 없다.
예제에서는 H1 컬럼을 기본키로 잡았는데, 여러 컬럼을 하나의 기본키로 만들 수도 있다.
이 경우에는 CONSTRAINTS 키워드를 사용해서 생성해야 한다.
기본키로 사용할 수 있는 컬럼 개수는 최대 32개다.
보통, 테이블을 만들 때 특수한 경우를 제외하고 기본키는 반드시 생성하는 것이 원칙이다.
728x90
'DataBase > Oracle' 카테고리의 다른 글
[Oracle] 오라클 제약조건 : 외래키 (1) | 2023.09.21 |
---|---|
[Oracle] 오라클 제약조건 : CHECK (1) | 2023.09.20 |
[Oracle] 오라클 제약조건 : UNIQUE (0) | 2023.09.18 |
[Oracle] 오라클 제약조건 : NOT NULL (1) | 2023.09.18 |
[Oracle] 오라클(Oracle) 데이터 타입 ( 문자, 숫자, 날짜, LOB ) (2) | 2023.09.13 |