Skip to content

12. CHECK


1. CHECK Constraint

  • CHECK 제약 조건은 열에 배치할 수 있는 값의 범위를 제한하는 데 사용된다.
  • 열에 CHECK 제약 조건을 정의하면 이 열에 대해 특정 값만 허용된다.
  • 테이블에 CHECK 제약 조건을 정의하면 행의 값을 기반을 둔 다른 특정한 열의 값을 제한할 수 있다.


2. CHECK on CREATE TABLE

  • 다음은 Persons 테이블이 생성될 때 Age 열에 CHECK 제약 조건을 생성한다.
  • 이때의 CHECK 제약 조건은 사람의 나이는 18세 이상이어야 한다는 것이다.


1) MySQL

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CHECK (Age >= 18)
);


2) SQL Server / Oracle / MS Access

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int CHECK (Age >= 18)
);


  • CHECK 제약 조건의 이름을 지정하고, 여러 열에 대한 CHECK 제약 조건을 정의하려면 다음 SQL 문을 사용한다.


CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    City varchar(255),
    CONSTRAINT CHK_Person CHECK (Age >= 18 AND City = 'Sandnes')
);


3. CHECK Constraint on ALTER TABLE

  • Persons 테이블이 이미 생성된 경우 Age 열에 CHECK 제약 조건을 생성하려면 다음 SQL 문을 사용한다.


ALTER TABLE Persons
ADD CHECK (Age >= 18);


  • CHECK 제약 조건의 이름을 지정하고, 여러 열에 대한 CHECK 제약 조건을 정의하려면 다음 SQL 문을 사용한다.


ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonOrder
CHECK (Age >= 18 AND City = 'Sandnes');


4. DROP a CHECK Constraint

  • CHECK 제약 조건을 삭제하려면 다음 SQL 문을 사용한다.


1) MySQL

ALTER TABLE Persons
DROP CHECK CHK_PersonAge;


2) SQL Server / Oracle / MS Access

ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;

References