본문 바로가기
Programming/Oracle SQL

CONSTRAINT(제약 조건)

CONSTRAINT: 테이블에 저장될 데이터에 제약을 거는 것.

 

Data integrity(데이터 무결성): 저장된 데이터의 정확성, 일관성 보장.

                                               -> 제약조건은 이러한 무결성을 위한 안전 장치.

자격증 시험용

 

NOT NULL : 지정된 열에 NULL 저장 불가. (이 외 데이터 중복은 허용)

 

 

 

 

 

column, type, CONSTRAINT its name

 

 


 

 

UNIQUE: 중복 데이터 저장 불가. (NULL은 可)


 

 

Primary key(PK): 중복, NULL 저장 불가. 인덱스 자동 생성

 

 

생성방법 2


 

 

FOREIGN KEY(FK): 다른 테이블 PK 참조. (참조하는 키의 데이터와 NULL만 저장)

SQL 시험문제에 꼭 하나 나오는 파트

 

REFERENCES가 FK를 의미한다!

 

 

 


CHECK: 열에 저장할 수 있는 값 범위, 패턴 정의 (조건식 지정)

 

 

 

 

 


DEFAULT: 지정값 없을 때 기본 값 지정

 

DESC TABLE_DEFULT;

 

 

 

 

 

 


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