Constraint (제약조건)
- 테이블의 해당 칼럼에 원하지 않는 데이터를 입력/수정/삭제 되는 것을 방지 하기 위해 테이블 생성 또는 변경시
설정하는 조건이다. (저장된 데이터의 신뢰성을 높이기 위해)
종류
1) NOT LULL : NULL 로 입력이 되어서는 안되는 칼럼에 부여하는 조건으로
칼럼 레벨에서만 부여할수 있는 제약조건이다.
2) UNIQUE KEY (유일키) : 저장된 값이 중복되지 않고 오직 유일하게 유지되어야 할때 사용하는 제약조건이다.
(단, NULL 은 허용된다.)
3) PRIMARY KEY (대표키) : NOT NULL 조건과 UNIQUE KEY 를 합친 조건이다.
4) CHECK : 조건에 맞는 데이터만 입력되도록 조건을 부여하는 제약 조건
5) FOREIGN KEY (외래키) : 부모 테이블의 PRIMARY KEY 를 참조하는 칼럼에 붙이는 제약조건이다.
ex) emp 테이블의 deptno 칼럼
예제 제약조건
- create table dept2 (deptno number(2) constraint dept2_deptno_pk primary key, dname varchar2(15) default '영업부', loc char(1) constraint dept2_loc_ck check(loc in ('1', '2')));
- constraint 와 제약 조건명은 생략이 가능하다 (칼럼 레벨일때)
- create table dept3 (deptno number(2) primary key, dname varchar2(15) default '영업부', loc char(1) check( loc in( '1', '2')));
- 외래키를 만들기 위해서는 부모 테이블을 먼저 만들어야한다.
- CREATE TABLE dept2( deptno NUMBER(2) PRIMARY KEY, dname VARCHAR2(15) NOT NULL)
- CREATE TABLE emp2( empno NUMBER(4) PRIMARY KEY, ename VARCHAR2(15) NOT NULL, deptno NUMBER(2) REFERENCES dept2(deptno) );
제약조건 알아보기
- 제약조건 이름 검색하기
- SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS ;
- 제약조건은 수정은 불가능하고 삭제만 가능하다
- ALTER TABLE dept2 DROP CONSTRAINT 제약조건명 ;
- 제약조건 추가하기
- ALTER TABLE dept2 ADD( CONSTRAINT 제약조건명 PRIMARY KEY(deptno)) ;
'Oracle' 카테고리의 다른 글
Oracle sqlplus select sub-Query (2) | 2023.04.21 |
---|---|
Oracle sqlplus select JOIN (0) | 2023.04.20 |
Oracle sqlplus select Function(복수행 함수) (0) | 2023.04.20 |
Oracle sqlplus select Function(단일행 함수) (0) | 2023.04.20 |
Oracle sqlplus select (연산자) (0) | 2023.04.19 |