오라클 제약조건( Constraints )
종속된 테이블/컬럼의 삭제를 방지하고,
테이블에 유효하지 않은 데이터가 입력되는 것을 방지하기 위해 사용합니다.
■ 제약조건 유형
제약 유형 |
제약 설명
|
NOT NULL |
해당열에 널값이 없도록 하기 위한 제약조건 |
UNIQUE |
지정된 열에 대해 널값은 허용하나, 동일한 값은 허용되지 않는 제약조건 오라클 서버는 지정된 열에 대해 자동으로 인덱스를 생성 |
PRIMARY KEY |
테이블의 각 행을 식별하기 위해 테이블당 하나의 기본키를 생성 중복된 값과 널값을 가질 수 없다 오라클 서버는 지정된 열에 대해 자동으로 인덱스를 생성 |
FOREIGN KEY |
동일한 테이블 또는 다른 테이블에서 기본키 또는 고유키를 참조하는 제약조건 부모 테이블의 값과 일치하거나 널값을 가져야 한다. ON DELETE CASCADE : 부모 테이블의 행이 삭제되는 경우 자식 테이블의 종속 행을 삭제 ON DELETE SET NULL : 부모 테이블의 행이 삭제되는 경우 종속 외래키 값을 널로 변환 |
CHECK |
각 행이 만족시켜야 하는 조건을 정의 ex) SAL NUMBER(10) CONSTRAINT EXAMPLE_SAL_CK CHECK(SAL > 1000) |
■ Constraint, Dictionary 테이블
테이블 |
테이블 설명
|
USER_CONSTRAINTS |
테이블에 정의된 제약조건을 관리 ※ CONSTRAINT_TYPE P : PRIMARY KEY, R : FOREIGN KEY, C : CHECK 또는 NOT NULL, U : UNIQUE |
USER_CONS_COLUMNS |
제약조건으로 선언된 테이블/컬럼 정보 |
■ Constraint 관리
1. Constraint 추가
1-1. Primary Key 생성
ALTER TABLE {테이블명} ADD CONSTRAINT {PK_INDEX명} PRIMARY KEY( {컬럼1}, {컬럼2}, ... );
1-2. Unique Index 추가
CREATE UNIQUE INDEX {인덱스명} ON {테이블명}( {컬럼1}, {컬럼2}, ... );
2. Constraint 삭제
: 테이블의 DEPT_ID(FOREIGN KEY)필드의 제약조건을 삭제
- ALTER TABLE {테이블명} DROP CONSTRAINT {제약조건명};
2-1. Primary Key 삭제
ALTER TABLE {테이블명} DROP PRIMARY KEY CASCADE
2-2. Unique Index 삭제
DROP INDEX {인덱스명};
끝.
'Study > Oracle' 카테고리의 다른 글
Query의 명칭 ? (0) | 2018.11.04 |
---|---|
오라클 딕셔너리 (0) | 2018.10.28 |
Oracle 12c 삭제 (0) | 2018.10.28 |
오라클 계정 생성 및 사용자 확인 (0) | 2018.10.27 |
Orange for Oracle 7.33 다운로드 및 설치 (0) | 2018.10.27 |