Data base
UNIQUE
연93
2022. 10. 14. 12:57
/*
UNIQUE : UNIQUE 제약조건은 말 그대로 해당 컬럼에 들어가는 값이 유일해야 한다는 의미다. 즉 중복 값을 허용하지 않는다.
컬럼에 제약조건 설정시
1)테이블수준제약: 컬럼을 다 정의하고 나서, 마지막에 제약조건설정
예>
CREATE TABLE 테이블명(
컬럼명1 테이터타입,
컬럼명2 테이터타입,
컬럼명3 테이터타입,
CONSTRATINS 제약조건객체이름 재약조건명령어(컬럼명1)
);
2)컬럼수준제약 : 컬럼 생성시 제약조건 설정
예> 컬럼명 데이터타입 제약조건명령어
*/
CREATE TABLE ex2_7 (
COL_UNIQUE_NULL VARCHAR2(10) UNIQUE, -- NULL 생략됨.제약객체이름 자동으로 생성
COL_UNIQUE_NNULL VARCHAR2(10) UNIQUE NOT NULL, --제약객체이름 자동으로 생성
COL_UNIQUE VARCHAR2(10), -- NULL 생략됨
CONSTRAINTS unique_nm1 UNIQUE ( COL_UNIQUE)
);
CREATE TABLE ex2_7 (
COL_UNIQUE_NULL VARCHAR2(10) UNIQUE, -- NULL 생략됨.
COL_UNIQUE_NNULL VARCHAR2(10) UNIQUE NOT NULL,
COL_UNIQUE VARCHAR2(10) CONSTRAINTS unique_nm1 UNIQUE ( COL_UNIQUE)
);
--제약조건 정보확인
SELECT constraint_name, constraint_type, table_name, search_condition
FROM user_constraints
WHERE table_name = 'EX2_7';
-- 데이터 추가시 컬럼생략한 경우는 모든 컬럼명을 입력한다는 의미
INSERT INTO ex2_7 VALUES ('AA', 'AA', 'AA'); --처음에는 데이터 삽입이 성공
INSERT INTO ex2_7 VALUES ('AA', 'AA', 'AA'); -- UNIQUE 제약조건,중복된값은 저장되지않는다
INSERT INTO ex2_7 VALUES ('', 'BB', 'BB');
INSERT INTO ex2_7 VALUES ('', 'CC', 'CC');