CHECK & DEFAULT 속성

Soozoo·2024년 7월 3일

데이터베이스(DB)

목록 보기
7/19

여기서는 CHECKDEFAULT 제약 조건을 사용하여 테이블을 생성하고 데이터를 삽입하는 방법에 대해 설명드리겠습니다.

CHECK 제약 조건 사용 예제

-- ck_Test 테이블 생성, age 컬럼에 CHECK 제약 조건 설정
CREATE TABLE ck_Test(
    NAME VARCHAR(10) NOT NULL,
    age NUMBER(2) NOT NULL
        CHECK (age BETWEEN 20 AND 30) -- age 값은 20에서 30 사이만 허용
);

-- 데이터 삽입 시 CHECK 제약 조건에 따라 유효성 검사
insert into ck_Test values('aa', 22); -- 유효
insert into ck_Test values('bb', 30); -- 유효
insert into ck_Test values('cc', 55); -- 무효: age 값이 20에서 30 사이가 아님
insert into ck_Test values('dd', 12); -- 무효: age 값이 20에서 30 사이가 아님
insert into ck_Test values('ee', 44); -- 무효: age 값이 20에서 30 사이가 아님

-- 테이블 내용 확인
SELECT * FROM ck_Test;

나이가 20에서 30 사이가 아니라서 들어가지 않는다.

DEFAULT 제약 조건 사용 예제

-- de_Test 테이블 생성, addr 컬럼에 DEFAULT 제약 조건 설정
CREATE TABLE de_Test(
    NAME VARCHAR(10) NOT NULL,
    addr VARCHAR(10) DEFAULT '서울' -- addr 값이 지정되지 않을 경우 기본값 '서울' 사용
);

-- 데이터 삽입 시 DEFAULT 제약 조건 사용 예제
insert into de_Test values('KIM', ''); -- addr 값이 ''이므로 기본값 '서울'로 삽입됨
insert into de_Test values('KIM', DEFAULT); -- DEFAULT 키워드 사용하여 기본값 '서울'로 삽입됨
insert into de_Test(NAME) values('LEE'); -- addr 값을 지정하지 않아도 기본값 '서울'로 삽입됨

-- 테이블 내용 확인
SELECT * FROM de_Test;

설명:

  1. CHECK 제약 조건:
    • age 컬럼에 CHECK (age BETWEEN 20 AND 30)을 설정하여, age 값이 20에서 30 사이만 허용되도록 제약 조건을 정의합니다.
    • 이를 통해 특정 범위 내의 값만을 허용하고 그 외에는 데이터 삽입을 막을 수 있습니다.
  2. DEFAULT 제약 조건:
    • addr 컬럼에 DEFAULT '서울'을 설정하여, 데이터 삽입 시 addr 값을 지정하지 않으면 기본적으로 '서울'로 설정되도록 합니다.
    • DEFAULT 키워드를 직접 사용하여 기본값을 명시적으로 삽입할 수 있습니다.
  3. 데이터 삽입 예제:
    • DEFAULT 키워드를 사용하여 기본값을 명시적으로 삽입할 수 있습니다.
    • 데이터가 제약 조건에 맞지 않으면 삽입이 실패할 수 있습니다 (예: age 값이 20에서 30 사이가 아닌 경우).
profile
넙-죽

0개의 댓글