오라클 제약조건( Constraints )

Study/Oracle 2018. 10. 28. 11:22 Posted by meanoflife
반응형

오라클 제약조건( 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