1-2. UNIQUE

<aside> 💡

UNIQUE는 해당 컬럼의 값이 유일해야 한다는 제약 조건이다.UNIQUE 와 NOT NULL 제약 조건을 같이 명시해서 특정 컬럼의 입력값의 유일함은 물론 반드시 입력하도록 설정 할 수도 있다. NULL 허용 컬럼에도 UNIQUE 제약조건을 붙일 수 있다.

중복 값을 허용하지 않는 고유키. 고유 인덱스 생성됨.

</aside>

컬럼명 데이터타입 UNIQUE
or
CONSTRAINTS 제약조건명 UNIQUE(컬럼명...)

※  UNIQUE 제약조건과 기본키(Primary key)의 차이점

기본키 UNIQUE
기본키의 포함된 어떤 컬럼도 NULL값을 포함할 수 없다. 제약 조건의 값의 조합이 고유한 경우 NULL 값 포함 가능
-- 단일 컬럼 지정 UNIQUE 제약조건
CREATE TABLE supplier
( supplier_id NUMBER(10) NOT NULL,
  supplier_name VARCHAR2(50) NOT NULL,
  contact_name VARCHAR2(50),
  CONSTRAINT supplier_unique UNIQUE(supplier_id)
);
 
-- 복수 컬럼 지정 UNIQUE 제약조건
CREATE TABLE supplier
( supplier_id NUMBER(10) NOT NULL,
  supplier_name VARCHAR2(50) NOT NULL,
  contact_name VARCHAR2(50),
  CONSTRAINT supplier_unique UNIQUE(supplier_id,supplier_name)
);
-- UNIQUE 제약 조건 추가
ALTER TABLE supplier
ADD CONSTRAINT supplier_contact_unique UNIQUE(contact_name);
 
-- UNIQUE 제약 조건 삭제
ALTER TABLE supplier
DROP CONSTRAINT supplier_unique;
-- UNIQUE 제약조건 비활성화
ALTER TABLE 테이블명
DISABLE CONSTRAINT 제약조건명;
 
ALTER TABLE supplier
DISABLE CONSTRAINT supplier_unique;
 
-- UNIQUE 제약조건 활성화
ALTER TABLE 테이블명
ENABLE CONSTRAINT 제약조건명;
 
ALTER TABLE supplier
ENABLE CONSTRAINT supplier_unique;