무결성 제약조건 추가 예

 

*실습 예 1

-p44의 부서 테이블 인스턴스를 참조하여 deptno에 기본 키, dname에 NOT NULL 무결성 제약조건을 추가하여라.

 

add constraints primary key dept_pk(deptno);

alter table department modify (dname not null);

 

실습 예2

-p44의 교수 테이블 인스턴스를 참조하여 profno에 기본 키, name에 NOT NULL, deptno에 참조 무결성 제약조건을 추가하여라.

 

alter table professor add constraints prof_pk primary key(profno);

alter table professor modify (name not null);

alter table professor add constraints prof_fk

foreign key(deptno) references department(deptno);

 

 

무결성 제약조건 추가 예

 

*사용 예

-학생 테이블 인스턴스를 참조하여 studno에 기본 키, idnum에 고유 키, name에 NOT NULL 무결성 제약조건을 추가하여라.

 

 

 

기존 테이블에 무결성 제약조건 추가

 

*NULL을 제외한 무결성 제약조건 추가

 -ALTER...ADD CONSTRAINT 명령문 사용

 

*사용법

ALTER TABLE    table

ADD [CONSTRAINT constraint_name] constraint_type (column) ;

 

*NULL 무결성 제약 조건 추가

 -ALTER TABLE...MODIFY 명령문 사용

 

*사용법

ALTER TABLE    table

MODIFY (column CONSTRAINT constraint_name constraint

 

 

 

무결성 제약조건 조회

 

*USER_CONSTRAINTS 데이터 사전에서 무결성 제약조건 조회

 

무결성 제약조건 생성 예

 

수강(sugang) 테이블 인스턴스

 

무결성 제약조건 생성 예

 

강좌(subject) 테이블 인스턴스

 

 

무결성 제약조건 생성문에서의 키워드

 

*ON DELETE CASCADE

-부모 테이블에서 외래 키가 참조하는 기본 키나 고유 키를 포함한 행을 삭제할 경우 자식 테이블의 외래 키를 포함하는 행도 함께 삭제

 

*USING INDEX

-기본 키나 고유 키 무결성 제약조건 생성시 묵시적으로 생성되는 인덱스에 대한 스토리지 파라미터 정의

 

*NOT DEFERRABLE:

-하나의 DML 명령문이 처리될 때마다 제약조건 위반 여부를 검사, defer_spec을 명시하지 않을 경우에는 기본 값

 

*DEFERRABLE

-트랜잭션내의 모든 DML 명령문에 대한 제약조건 검사를 트랜잭션 종료 시까지 연기

 

*INITIALLY IMMEDIATE

-DML 명령문이 종료될 때마다 제약조건 검사

 

*INITIALLY DEFERRED

-트랜잭션이 끝날 때만 제약조건 검사

 

 

테이블 레벨에서 제약조건 정의

 

*table_constraint : 테이블 레벨에서 제약 조건을 정의하는 경우

table_constraint : ==

{{UNIQUE | PRIMARY KEY} (column[, column]...)

|PRIMARY KEY[USING INDEX index_clause]

|UNIQUE[USING INDEX index+clause]

|FOREIGN KEY (column[. column]...)

                  REFERENCES[schema. ] table[(column[. column]...)]

                              [ON DELETE CASCADE]

|CHECK (condition)}

defer_spec :==

[NOT DEFERRABLE

|DEFERRABLE[INITIALLY{IMMEDIATE | DEFERRED}]]

[DISABLE | ENABLE]

 

 

+ Recent posts