오라클 DB(sql)_기초 18 (제약조건)
데이터베이스 2021. 5. 1. 20:00<무결성 보장 방법>
- 응용 프로그램의 코드내부에서 규정을 지어서
- Column 무결성-데이터 타입과 구조에따른 데이터 입력
- 제약조건 무결성 -key의 형태로 설치해서 조건에 맞는것만 입력
- View객체 보장
제약조건
- 종속된 테이블의 삭제를 방지함.
- Not null : 반드시 값이 있어야 한다 / Unique: 중복을 허용하지 않음. / PK: Nn + UK
FK : PK, UK column참조 / CHECK: 조건(salary>100같은) 것만 저장하겠다. - 제약조건에 이름을 지정하지 않으면 시스템이 SYS_Cn(001,002)형식의 이름을 생성하지만 추후 설정을 편하게 하기위해 이름을 반드시 설정해 주는 것이 좋음.
- 조건 생성: Create Table 명령어에 포함 / Alter table add 명령어로 추가
- 데이터 딕셔너리에 정보가 저장됨.
***** 제약조건 선언부: Constraint 제약조건 이름// 제약조건 유형// (column_name) (규칙: 테이블 명_컬럼명_제약조건 약어)
****** PK, FK, UK, CK 의 경우 테이블과 컬럼레벨 모두에서 선언 가능함.(99.99%가 테이블레벨에서만)
****** not Null 의 경우 오직 컬럼레벨에서만 선언 가능함.
- 제약조건 선언 레벨
: 테이블레벨 선언 - 컬럼을 다 선언하고 제약조건을 마지막절에 포함 시켜서 수행하는 것
: 컬럼레벨 - 컬럼 옆에다가 바로 제약조건을 서술하는 것 - 위에서 constraint와 제약조건 이름을 빼고 써도 됨. 이름은 sys_count 형식으로 자동으로 네이밍됨.
- 현업에서는 not null 조건을 걸때만 제약조건 이름을 쓰지 않음. 대부분 sys_cn 형태는 not null 제약조건으로 보면 되고, 이름이 있는 경우 나머지 4개(PK, UK, FK, CK)임.
- FK(Foreign key) ; 참조할 부분(테이블과 컬럼명)을 REFERENCE 절로 적어줌.
- CHECK 제약조건: 제약조건 뒤에 각 행이 만족시켜야 하는 조건문을 넣어줌.
- 제약조건 추가 구문
: Alter table add constraint 사용-테이블레벨에서의 제약조건 설정법 유사
: ADD 명령어로는 pk, ck, uk, fk 4가지만 추가 가능
: not null 의 경우는 modify 명령어로 넣어줌
( modify coumn명 constraint 제약조건이름 not nul )
- 제약조건 삭제 (Drop Constraint)
: Primary key 삭제의 경우 FK에 의해 참조되어있는 경우가 많아 Cascade 명령어를 사용하여
삭제하도록 함.
- Disable constraint
>> 제약조건이 비활성화 됨. Enable로 활성화가 가능함
>> Disable 시긴후 제약조건에 맞지 않는 데이터가 입될 경우 Enable시킬 수 없음.
- User_constraint 테이블을 조회 >> 모든 제약조건의 정의 및 이름을 봄
- User_Constraint_column 뷰를 통해 >> 제약조건 이름과 연관된 열을 봄
'데이터베이스' 카테고리의 다른 글
오라클 DB(sql)_기초 20 (Top-N 분석) (0) | 2021.05.01 |
---|---|
오라클 DB(sql)_기초 19 (View) (0) | 2021.05.01 |
오라클 DB(sql)_기초 17 (DDL) (0) | 2021.05.01 |
오라클 DB(sql)_기초 16 (DML 관련 주의사항) (0) | 2021.05.01 |
오라클 DB(sql)_기초 15 (Update & Delete) (0) | 2021.05.01 |