SQL - Oracle/10. 데이터 무결성과 제약 조건 (CONSTRAINT)
Day 35 : 제약 조건 -UNIQUE
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');