- 오라클 11g XE 버전입니다
- 오라클 샘플 계정 HR에 접속한 후 진행했습니다 ( 아래 참고 )
> https://hongdori2.tistory.com/4
1. 제약 조건
: 컬럼에 입력하는 값에 제한을 두는 것입니다
시스템 테이블 user_constraints 에서 제약조건 현황 정보를 알 수 있습니다
2. 제약 종류
- unique : 값 중복 불가
- not null : null 불가
- primary key : unique + not null
- check : 사용자 정의 조건식
- foreign key : 지정 테이블의 지정 컬럼에 있는 값만 입력 가능
3. 제약 생성
- foreign key 제외 > 컬럼 데이터타입 constraint 제약조건이름 제약조건종류
- foreign key > 컬럼 데이터타입 constraint 제약조건이름 references 테이블(컬럼명)
> foreign key 는 unique 또는 primary key 제약조건이 걸려있는 컬럼만 참조할 수 있다
예시)
> 제약 조건이 있는 테이블 생성
create table neighborhood ( neighborhood_name varchar2(300) constraint rule_neighborhoodname unique ) ;
create table friend
( friendname varchar2(30) constraint rule_friendname primary key,
password varchar2(12) constraint rule_password not null,
email varchar2(30) constraint rule_email check (email like '%@%'),
parents varchar2(30) constraint rule_parents references neighborhood(neighborhood_name)
)
4. 제약 삭제
alter table 테이블명 drop constraint 제약조건명;
ex) alter table friend drop constraint rule_friendname;
5. 제약 추가
- alter table 테이블명 add constraint 제약조건명 종류(컬럼명);
ex) alter table friend add constraint rule_friendname unique(friendname);
- not null 의 경우만 다르다
> alter table 테이블명 modify ( 컬럼명 데이터타입 constraint 제약조건명 not null )
ex) alter table friend drop constraint rule_friendname;
alter table friend modify ( friendname varchar2(30) constraint rule_friendname not null );
6. foreign key 옵션
- on delete cascade
> 참조하는 열의 값이 삭제되면 자기의 값도 삭제됩니다.
ex)
alter table friend drop constraint rule_friendname;
alter table friend add constraint rule_friendname foreign key(friendname) references neighborhood(neighborhood_name) on delete cascade;
on delete cascade 옵션으로 인해 neighborhood_name 값이 없어지면 friendname 값도 같이 삭제됩니다
'DB > Oracle' 카테고리의 다른 글
[Oracle] 오라클 시퀀스, 뷰, synonym, 오라클 계정 생성 (0) | 2020.06.02 |
---|---|
[Oracle] 오라클 테이블 생성, 수정, 삭제 - DQL, DML, DDL, TCL (0) | 2020.06.02 |
[Oracle] 오라클 테이블 조회 11(완) - 오라클 서브쿼리, any, all, rownum (0) | 2020.06.01 |
[Oracle] 오라클 테이블 조회 10 - 오라클 join, 테이블 별칭, from, 등가 조인, 비등가 조인, 자체 조인, 외부 조인, 셀프 조인 (0) | 2020.06.01 |
[Oracle] 오라클 테이블 조회 9 - 다중행 함수, group by, having, sum, avg, max, min, count (0) | 2020.05.31 |
댓글