금융에 대한 모든 것

데이터 무결성 제약조건이란?

 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해 테이블을 생성할 , 칼럼에 대해서 여러 가지 제약 조건을 정의하는 것을 말합니다. 제약 조건의 종류는 아래와 같습니다.

 

무결성 제약조건

역할

NOT NULL

NULL을 허용하지 않습니다.

UNIQUE

중복된 값을 허용하지 않습니다.

PRIMARY KEY(PK)

NULL을 허용하지 않고 중복된 값을 허용하지 않습니다

FOREIGN KEY(FK)

참조되는 테이블에서 컬럼의 값이 존재하면 허용합니다.

CKECK

저장 가능한 데이터 값의 범위나 조건을 지정하여 설정한 값만을 허용합니다.

DEFAULT

값이 추가되지 않을 기본 값이 들어가도록 명시해줍니다.

 

칼럼 레벨로 제약조건 이름 정하기

 기본적으로 제약 조건의 이름을 정해주지 않으면 자동으로 정해주지만 그렇게 되면 어떤 제약조건을 위배했는지 없기 때문에 아래와 같이 CONSTRAINT 키워드를 이용하여 정의합니다. 또한 아래 문장은 모든 데이터베이스에서 사용 가능한 쿼리입니다.

사용법

CONSTRAINT 제약조건명(테이블명_컬럼명_키) 제약조건

아래와 같이 제약 조건명을 정할 때는 테이블명, 칼럼명, 키를 조합하여 정합니다.

 

예시

CONSTRAINT TABLE_COLUMN1_UK UNIQUE

 

NOT NULL 제약조건

 NOT NULL은 해당 칼럼에 데이터를 추가하거나 수정할 , NULL 값이 저장되지 않게 제약을 걸어주는 것으로써 자료가 입력되게 하고 싶을 사용합니다.

 

예시

CREATE TABLE t_table(
    --제약 조건명 정의
    column1 VARCHAR2(10) 
            CONSTRAINT T_COLUMN1_NN NOT NULL
    --간편 정의방법    
   ,column2 NUMBER(4) NOT NULL
);

테이블 생성 시에 제약 조건을 걸어주고 싶은 칼럼 옆에 CONSTRAINT 키워드를 이용하여 제약 조건을 걸어줍니다. 오라클에서는 column2 같이 CONSTRAINT 키워드를 이용하지 않아도 간단하게 제약 조건을 지정할  있습니다.

 

UNIQUE 제약조건

UNIQUE 제약조건은 특정 칼럼에 대해 고유한 값이 들어가도록 하여 데이터가 중복되지 않게 하는 것입니다.

 

예시

CREATE TABLE t_table(
    column1 VARCHAR2(10)
        --제약 조건명 정의방법
        CONSTRAINT T_COLUMN1_UK UNIQUE
    --간편 정의방법
   ,column2 NUMBER(4) UNIQUE
);

 

PRIMARY KEY 제약조건

 PRIMARY KEY 제약조건은 NOT NULL UNIQUE 합친 기능을 함으로써 기본 키라 고도합니다. 각각의 데이터를 구분하기 위해 유일한 키를 정해놓는 기능을 합니다.

예시

CREATE TABLE t_table(
    --제약 조건명 정의방법
    column1 VARCHAR2(10) 
            CONSTRAINT T_COLUMN1_PK PRIMARY KEY
    --간편 정의방법    
   ,column2 NUMBER(4) PRIMARY KEY
);

 

결과

ff

 

FOREIGN KEY 제약조건

 FOREIGN KEY 제약조건은 부모 테이블의 특정한 값의 칼럼만 있도록 하는 것이며 외래 키라고도 합니다. 부모 테이블에서 참조하고 있는 칼럼의 값이 1,2,3,4 밖에 없다면 외래 키를 가지고 있는 칼럼도 1,2,3,4 중에서 하나만이 들어갈 있습니다.

 

예시

CREATE TABLE t_table(
    --제약 조건명 정의
    column1 VARCHAR2(10)
            CONSTRAINT T_COLUMN1_FK REFERENCES parent_table(column3)
    --간편 정의방법
   ,column2 NUMBER(4) FOREIGN KEY REFERENCES parent_table(column3)     
);

외래 키는 REFERRENCES 키워드를 이용하여 참조할 테이블과 칼럼명을 입력하여 정의합니다. 이때, 참조하는 부모 테이블의 값은 PRIMARY KEY UNIQUE 제약조건이 붙어있어야 합니다.

 

check 제약조건

check 제약조건은 입력되는 값을 체크하여, 설정된 이외의 값이 들어오면 오류 메시지를 띄우게 합니다.

 

예시

CREATE TABLE t_table(
    column1 VARCHAR2(10) 
   ,column2 NUMBER(4)
       CHECK(column2 > 50)
);

체크 키워드 안에 위와 같이 조건을 걸어주게 되면 column2 값으로 50 이상의 값만 들어갈  있게 됩니다.

 

default 제약조건

 아무런 값을 입력되지 않고 행만 추가되었을 null 대신 들어갈 기본 값을 지정할 있습니다.

 

예시

CREATE TABLE t_table(
    column1 VARCHAR2(10) DEFAULT '기본'
    column2 VARCHAR2(20)
);

column1에 값이 없어서 null값이 들어가는 대신 '기본'이라는 값이 들어갑니다.

 

  

반응형