CONSTRAINT: 테이블에 저장될 데이터에 제약을 거는 것.
Data integrity(데이터 무결성): 저장된 데이터의 정확성, 일관성 보장.
-> 제약조건은 이러한 무결성을 위한 안전 장치.
NOT NULL : 지정된 열에 NULL 저장 불가. (이 외 데이터 중복은 허용)
UNIQUE: 중복 데이터 저장 불가. (NULL은 可)
Primary key(PK): 중복, NULL 저장 불가. 인덱스 자동 생성
FOREIGN KEY(FK): 다른 테이블 PK 참조. (참조하는 키의 데이터와 NULL만 저장)
SQL 시험문제에 꼭 하나 나오는 파트
CHECK: 열에 저장할 수 있는 값 범위, 패턴 정의 (조건식 지정)
DEFAULT: 지정값 없을 때 기본 값 지정
CREATE TABLE DEPT_CONST (
DEPTNO NUMBER(2) CONSTRAINT DEPTCONST_DEPTNO_PK PRIMARY KEY,
DNAME VARCHAR2(14) CONSTRAINT DEPTCONST_DNAME_UNQ UNIQUE,
LOC VARCHAR2(13) CONSTRAINT DEPTCONST_LOC_NN NOT NULL
);
CREATE TABLE EMP_CONST (
EMPNO NUMBER(4) CONSTRAINT EMPCONST_EMPNO_PK PRIMARY KEY,
ENAME VARCHAR2(10) CONSTRAINT EMPCONST_ENAME_NN NOT NULL,
JOB VARCHAR2(9),
TEL VARCHAR2(20) CONSTRAINT EMPCONST_TEL_UNQ UNIQUE,
HIREDATE DATE,
SAL NUMBER(7, 2) CONSTRAINT EMPCONST_SAL_CHK CHECK (SAL BETWEEN 1000 AND 9999), --조건은 CHECK!
COMM NUMBER(7, 2),
DEPTNO NUMBER(2) CONSTRAINT EMPCONST_DEPTNO_FK REFERENCES DEPT_CONST (DEPTNO)
); -- FK는 REFERENCES임을 유념하자!
SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ( 'EMP_CONST', 'DEPT_CONST' )
ORDER BY CONSTRAINT_NAME;
728x90
반응형
'Programming > Oracle SQL' 카테고리의 다른 글
사용자 권한 (0) | 2023.08.29 |
---|---|
실무에서 많이 쓰는 VIEW (0) | 2023.08.28 |
DDL (Data Definition Language) (0) | 2023.08.28 |
IMPORT and EXPORT DATA, 끄적임 (0) | 2023.08.25 |
DML and DCL (Data Manipulation, Control Language) (0) | 2023.08.25 |