pancakemaker 2021. 12. 6. 14:39

② UNIQUE 제약 조건

: 특정 칼럼에 모든 값이 고유하게 유지되도록 하는 고유 키를 생성

: 칼럼이 중복 값을 가질 수 없게 함

: NULL 값 입력 가능

 

UNIQUE 제약 조건 지정하기 (ID)

CREATE TABLE CUSTOMER(
        ID VARCHAR(20) UNIQUE,
        PWD VARCHAR(20) NOT NULL,
        NAME VARCHAR(20) NOT NULL,
        PHONE VARCHAR(30),
        ADDRESS VARCHAR(100));

 

중복 값 삽입 시 오류 발생 (동일 ID)

INSERT INTO CUSTOMER
VALUES ('GREENTEA', '1234', '녹차', '010-111-1111', 'SEOUL');

INSERT INTO CUSTOMER
VALUES ('GREENTEA', '11223344', '그린티', '010-222-2222', 'SEOUL');

 

UNIQUE 제약 조건은 NULL 값 입력 허용

INSERT INTO CUSTOMER
VALUES(NULL, '11223344', '그린티', '010-222-2222', 'SEOUL');

INSERT INTO CUSTOMER
VALUES(NULL, '4321', '커피', '010-3333-3333', 'SEOUL');

 

※ 제약 조건 이름 지정

: 제약 조건을 지정하면서 이름을 명시하지 않으면 오라클 서버가 자동으로 제약 조건 이름을 부여

: 이름 지정을 위해 CONSTRAINT 키워드 사용

CREATE TABLE table_name
column_name datatype CONSTRAINT constraint_name constraint_type

 

제약 조건 이름 지정하기

CREATE TABLE CUSTOMER(
        ID VARCHAR(20)CONSTRAINT CUSTOMER_ID_UK UNIQUE,
        PWD VARCHAR(20) CONSTRAINT CUSTOMER_PWD_NN NOT NULL,
        NAME VARCHAR(20) CONSTRAINT CUSTOMER_NAME_NN NOT NULL,
        PHONE VARCHAR(30),
        ADDRESS VARCHAR(100));

 

※ 제약 조건을 보려면 USER_CONSTRAINTS 데이터 사전 사용

 

제약 조건 확인하기

SELECT TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('CUSTOMER');