개발 일기
SQL의 Constraint(제약조건)에 대해 알아보쟈! 본문
안녕하세요!!
오늘은 SQL의 DDL(데이터 정의어)와 연결되는 Constraint(제약조건)에 대해 정리해보겠습니다!
제약조건(Constraint)란??
- Oracle 서버는 제약조건을 이용하여 적절치 않은 데이터가 저장되는 것을 방지
제약조건 특징
- 테이블에 데이터가 저장, 갱신, 삭제 될 때마다 지정된 제약조건을 반드시 만족해야 하므로 데이터 무결성 강화
- 다른 테이블이 참조되고 있는 테이블이 삭제되는 것을 방지
제약조건 사용 지침
- 적절한 이름을 지정하여 제약조건을 사용한다, 지정하지 않으면 자동으로 SYS_Cn 형식으로 임의 저장 관리 어려움
- 테이블 생성과 동시에 지정할 수 있고, 테이블 생성 후 추가 할 수도 있다.
- 제약 조건은 테이블 수준 및 컬럼 수준, 2가지 방법으로 지정
- 제약 조건은 USER_CONSTRAINTS 데이터 딕셔너리에서 검색 가능
* 제약조건 정의 방법
1) 테이블 수준 지정 방법
- 한 개 이상의 컬럼에 한 개의 제약 조건을 정의 할 수 있다.
- NOT NULL 제약조건을 제외한 모든 제약조건 정의 가능하다.
- 컬럼 정의와 별도로 지정한다.
2) 컬럼 수준 지정 방법
- 한 개의 컬럼에 한 개의 제약 조건만 정의 가능하다.
- 모든 제약조건 정의 가능하다.
(데이터 무결성) 제약조건 종류
- NOT NULL : 이 열은 null값을 포함하지 않음을 지정
- UNIQUE KEY : 테이블의 모든 행에 대해 유일해야 하는 값을 가진 열 또는 열의 조합을 지정
- PRIMARY KEY : 유일하게 테이블의 각 행을 식별
- FOREIGN KEY : 열과 참조된 테이블의 열 사이의 외래키 관계를 적용하고 설정
- CHECK : 참이어야 하는 조건을 지정
Constraint 예시
1. NOT NULL
-- error case
2. UNIQUE
-- error case
3. PRIMARY KEY (unique + not null)
-- error case
-- error case
4. FOREIGN KEY
- parent table = 부모 테이블, 참조되는 테이블
- child table = 자식 테이블, 참조하는 테이블
-- parent table(dept2) 생성 후 데이터 삽입
-- child table(emp2) 생성 후 FK 설정
--childe table 데이터 삽입 시 FK 값 설정
오늘은!! SQL의 제약조건에 대해서 공부해보았습니다.
감사합니다.
'SQL' 카테고리의 다른 글
SQL의 SEQUENCE(시퀀스)에 대해서 알아보자! (feat. 기타 스키마 객체) (0) | 2021.07.20 |
---|---|
SQL의 VIEW(뷰)에 대해서 알아보자! (feat. 기타 스키마 객체) (0) | 2021.07.19 |
SQL DDL(데이터 정의어)의 CREATE, DROP 공부(feat. SQL의 데이터 타입) (0) | 2021.07.17 |
SQL의 DML(Data Manipulation Language)에 대해 알아보자 (0) | 2021.07.15 |
SQL의 set 알아보기! (feat. 집합연산자, union, intersect, minus) (0) | 2021.07.14 |