무결성 유지란?
데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다. 사전 보호막을 설치하는 것이 제약 조건이다.
(데이터 추가, 수정, 삭제하는 가운데 데이터 무결성 지켜지도록)
: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT
- 필요한 정보는 꼭 입력되어야만 하도록, (NOT NULL) NN ex)이름
- 고유한 값만 입력되어야하는것은 중복되지 않도록, (UNIQUE) UK ex)주민번호
- 고유한 값이 꼭 입력되도록, (PRIMARY) PK ex)id, 회원번호, 물품번호
- 참조할 수 있는 값만 입력되도록 (FOREIGN) FK
ex)PK에 있는 값들을 참조하여 사용할 수 있다(사용하기위해서 PK에 등록이 되어있어야한다)
- 의도된 값 중에 입력이 되도록(CHECK) CK ex) 남녀
- 값이 입력되지않을 때 기본값이 지정되도록 (DEFAULT)
입력 방식
-테이블을 생성할 때(CREATE)
컬럼 LABEL 방식 테이블 생성할 때 컬럼 입력할 때 같이 입력해주는 방식
ex)
CREATE TABLE EMP05(
EMPNO NUMBER PRIMARY KEY,
ENAME VARCHAR2(20) NOT NULL UNIQUE,
JOB VARCHAR2(20),
DEPTNO NUMBER REFERENCES DEPARTMENTS(DEPARTMENT_ID),
GENDER CHAR(1) CHECK(GENDER IN ('남','여'))
LOC VARCHAR2(20) DEFAULT '대한민국'
);
테이블 LABEL 방식 테이블 생성을 다한 후에 입력
-(컬럼명 다쓰고 콤마 꼭 쓰기),
-CONSTRAINT 이름(테이블명_컬럼명_제약조건) 제약조건(컬럼명) 의 문법
ex)
CREATE TABLE EMP(
EMPNO NUMBER,
ENAME VARCHAR2(20) NOT NULL,
JOB VARCHAR2(20),
DEPTNO NUMBER,--콤마 꼭 써줘야한다
CONSTRAINT EMP_EMPNO_PK PRIMARY KEY(EMPNO),
CONSTRAINT EMP_DEPTNO_FK FOREIGN KEY(DEPTNO) REFERENCES DEPARTMENTS(DEPARTMENT_ID)
);
-테이블을 수정할 때(ALTER -ADD, MODIFY)
문법: ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 제약조건(칼럼명) ;
다른 제약조건은 이 문법을 쓰는데 NOT NULL은 다름
문법: ALTER TABLE 테이블명 MODIFY (칼럼명 CONSTRAINT 제약조건이름 NOT NULL) ;
이유는 칼럼에 기본값으로 허용되어 있는 NULL 값을 NOT NULL로 변경하는 것이라서
MODIFY를 사용해서 설정
출처: https://hayleyfish.tistory.com/47
CREATE TABLE EMP(
EMPNO NUMBER,
ENAME VARCHAR2(20),
JOB VARCHAR2(20),
DEPTNO NUMBER
);
--테이블 생성 후
ALTER TABLE EMP
ADD CONSTRAINT EMP_EMPNO_PK PRIMARY KEY(EMPNO);
ALTER TABLE EMP
ADD CONSTRAINT EMP_DEPTNO_FK FOREIGN KEY(DEPTNO) REFERENCES DEPARTMENTS(DEPARTMENT_ID);
ALTER TABLE EMP
ADD CONSTRAINT EMP_JOB_UK UNIQUE(JOB);
ALTER TABLE EMP
MODIFY ENAME CONSTRAINT EMP_ENAME_NN NOT NULL;
-제약조건 삭제(ALTER -DROP)
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건이름;
ALTER TABLE EMP
DROP CONSTRAINT EMP_EMPNO_PK;
-제약조건 삭제(ALTER -DROP)
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건이름;
ALTER TABLE EMP
DROP CONSTRAINT EMP_EMPNO_PK;
'DataBase > DBMS' 카테고리의 다른 글
9-2. 두개의 컬럼을 묶어서 PK 설정, 하나의 컬럼에 두가지 제약조건 설정 (0) | 2021.02.18 |
---|---|
9-1. 제약조건 삭제시 (PK의 경우, FK고려해야함) (0) | 2021.02.18 |
8.DML : INSERT, UPDATE, DELETE (0) | 2021.02.18 |
7. 자료형 (문자형, 숫자형, 날짜형, 대용량) (0) | 2021.02.18 |
6.DDL (테이블 정의)-CREATE, ALTER(ADD, MODIFY, DROP), TRUNCATE, RENAME, DROP (0) | 2021.02.18 |