일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Word Cloud
- Python
- scikit-learn
- 데이터 분석
- Udemy
- input
- 데이터
- 인공지능
- konlpy
- ionehotencoding
- pyspark
- 크롤링
- 데이터분석
- 형태소분석기
- Okt
- pandas
- iNT
- Tableau
- 머신러닝
- SQL
- numpy
- 시각화
- 태블로
- 파이썬
- selenium
- Today
- Total
반전공자
[DB] Oracle Integrity Constraint 본문
(integrity) constraint : 무결성 제약조건
* 예상치 못한 데이터의 손실, 일관성을 위반하는 데이터의 추가, 변경 등을 예방하기 위해 사용한다.
< Integrity Constraint > - NOT NULL : NULL 허용 안함 - UNIQUE : 중복허용안함 - PRIMARY KEY : 기본키 - FOREIGN KEY : 외래키 - CHECK : 값 검토 |
< NOT NULL >
: NULL 값이 존재할 수 없다.
컬럼형태로만 제약조건을 정의할 수 있다. 테이블에 설정하는 것 불가능
null 값을 갖지 않는 bookno 컬럼을 갖는 book 테이블을 만들어라.
CREATE TABLE book (
bookno NUMBER(5) NOT NULL
);
< UNIQUE >
: 중복된 값을 허용하지 않는다. NULL은 존재할 수 있다.
복합컬럼에 대해서도 정의할 수 있다.
자동적으로 인덱스가 생성된다.
중복된 값을 허용하지 않는 bookno 컬럼을 갖는 book 테이블을 만들어라.
CREATE TABLE book (
bookno NUMBER (5) CONSTRAINT c_book_u UNIQUE
);
< PRIMARY KEY >
: NOT NULL + UNIQUE
테이블 당 하나만 존재할 수 있다. (지정한번)
복합 컬럼에 대해서 정의 가능하다.
ssn1, ssn2를 기본키로 하는 Book 테이블을 만들자.
CREATE TABLE book(
ssn1 NUMBER(9),
ssn2 NUMBER(9),
PRIMARY KEY (ssn1, ssn2)
);
< FOREIGN KEY >
: = Referential Integrity
참조무결성 제약의 일부이다. 일반적으로 reference되는 테이블의 PK를 참조한다. (기본키참조)
참조되는 테이블에 없는 값은 삽입 불가하다.
- 참조되는 테이블의 레코드 삭제 시 동작방식
ON DELETE NO ACTION : 해당하는 FK를 가진 참조행 삭제 시도 시 오류발생 하며 delete 문 ROLLBACK (원상복구) ON DELETE CASECADE : 해당하는 FK를 가진 참조행도 삭제 ON DELETE : 지정하지 않는다면 NO ACTION이 기본값으로 사용된다. ON DELETE SET NULL : 해당하는 FK를 NULL로 바꾼다. NULL이 허용되어있는 상태여야 가능하다. ON DELETE SET DEFAULT : 기본값으로 설정. 기본값이 지정되어있지 않다면 Null이 기본이다. |
author 테이블의 id를 외래키로 참조하는 book 테이블을 만들자.
CREATE TABLE book(
...
author_id NUMBER(10),
CONSTRAINT c_book_fk FOREIGN KEY (author_id)
REFERENCES author(id)
ON DELETE SET NULL
);
< CHECK >
: 임의의 조건을 검사한다. 조건식이 참이어야 변경가능하게 한다.
rate의 값이 1, 2, 3, 4, 5 중 하나에 해당한다면 변경 가능하게 하는 테이블 book을 만들어라.
CREATE TABLE book(
rate NUMBER CHECK (rate IN (1, 2, 3, 4, 5))
);
< ADD / DROP CONSTRAINT >
: 제약조건 추가 / 삭제
- ADD CONSTRAINT
: NOT NULL은 추가하지 못한다. (테이블 생성 시 설정만 가능)
같은 테이블의 empno를 mgr로 참조하는 설정을 추가한다.
ALTER TABLE emp ADD CONSTRAINT emp_mgr_fk
FOREIGN KEY (mgr) REFERENCES emp(empno);
- DROP CONSTRAINT
: ALTER TABLE 테이블이름 DROP CONSTRAINT 제약조건이름
book의 c_book_u라는 이름을 가진 제약조건을 삭제해라.
ALTER TABLE book DROP CONSTRAINT c_book_u;
dept 테이블의 기본키를 삭제해라.
ALTER TABLE dept DROP PRIMARY KEY CASECADE;
※ CASECADE : 기본키를 참조하는 다른 외래키의 제약조건도 같이 삭제한다. (해당하는 FK를 가진 참조행도 삭제)
'DATABASE' 카테고리의 다른 글
[DB] University (0) | 2021.11.24 |
---|---|
[DB] Oracle DDL (0) | 2021.11.09 |
[ DB ] Relational Algebra Example (University) (0) | 2021.10.31 |
[ DB ] Relational Algebra Example (Banking) (0) | 2021.10.31 |
[DB] Relational Algebra (0) | 2021.10.31 |