OracleSQL 핵심정리6 - 데이터 무결성을 위한 제약조건
데이터 무결성
데이터 무결성
: 데이터베이스에 저장된 데이터의 정확성과 일관성을 유지하는 것
무결성 제약조건의 개념과 종류
데이터 무결성 제약조건
: 테이블에 부적절한 자료가 입력된는 것을 방지하기 위해서 테이블 생성시 각 컬럼에 대해서 정의하는 규칙제약조건 종류
: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK
제약조건 확인
- USER_CONSTRAINTS 데이터 딕셔너리를 사용해 제약조건 관련 정보를 확인
- USER_CONSTRAINTS가 제공하는 주요 컬럼으로 OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, R_CONSTRAINT_NAME 등이 있음
CONSTRAINT_TYPE
-P
: PRIMARY KEY,R
: FOREIGN KEY,U
: UNIQUE,C
: CHECK, NOT NULL- USER_CONS_COLUMNS 데이터 딕셔너리를 사용하면 컬럼의 제약조건을 확인할 수 있음
CONSTRAINT 테이블명_컬럼명_제약조건유형
: 컬럼 생성시 제약조건 명을 넣어줄 때 사용
CHECK & DEFAULT 제약조건
CHECK
- 입력되는 값을 체크하여 설정된 값 이외의 값이 들어오면 오류메시지와 함께 명령이 수행되지 못하도록 함- CHECK(컬럼명 조건) 형태로 사용
DEFAULT
- 아무런 값을 입력하지 않았을 때, 디폴트 값이 입력되도록 하는 제약조건- DEFAULT 디폴트값 형태로 사용
제약조건 변경
ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] 제약조건 타입 (컬럼명)
- 제약조건 추가- NOT NULL 제약조건은 ADD 대신 MODIFY 사용해야 함
ALTER TABLE 테이블명 DROP 제약조건명
- 제약조건명을 입력하여 제약조건 제거
제약조건의 비활성화
- 제약조건 사용을 잠시 보류할 수 있는 방법으로 비활성화를 제공
- 원하는 작업을 한 후에 다시 활성화 상태로 만들어 줘야 함
- 부모테이블을 참조할 경우 자식테이블만 비활성화 가능
DISABLE CONSTRAINT
: 제약조건 일시 비활성화ENABLE CONSTRAINT
: 비활성화된 제약조건을 다시 활성화함ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건명
;ALTER TABLE 테이블명 ENABLE CONSTRAINT 제약조건명
;
CASCADE
CASCADE
: 부모테이블의 제약조건을 비활성화하면서 자식테이블 제약조건까지 함께 비활성화- CASCADE는 비활성화 뿐만 아니라 제약조건 삭제에도 활용
ALTER TABLE 테이블명 DISABLE 제약조건타입 CASCADE
This post is licensed under CC BY 4.0 by the author.