Ràng Buộc Check Trong SQL

SQL CHECK Constraint

RÀNG BUỘC SQL CHECK 

Ràng buộc `CHECK` được sử dụng nhằm giới hạn phạm vi giá trị mà một cột có thể chứa.

Nếu bạn xác định ràng buộc `CHECK` trên một cột, nó chỉ cho phép một số giá trị nhất định cho cột này.

Nếu bạn xác định ràng buộc KIỂM TRA trên một bảng, nó có thể giới hạn các giá trị trong các cột nhất định dựa trên các giá trị trong các cột khác trong hàng.

SQL CHECK  KHI TẠO BẢNG

SQL sau tạo ràng buộc `CHECK` trên cột “Tuổi” khi bảng “Người” được tạo. Ràng buộc `CHECK` đảm bảo rằng tuổi của một người phải từ 18 tuổi trở lên:

MySQL:

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

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)
);

Để cho phép đặt tên cho ràng buộc `CHECK` và để xác định ràng buộc `CHECK` trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

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’)
);

KIỂM TRA SQL TRÊN ALTER TABLE

Để tạo ràng buộc KIỂM TRA trên cột “Tuổi” khi bảng đã được tạo, hãy sử dụng SQL sau:

MySQL / SQL Server / Oracle / MS Access:

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

Để cho phép đặt tên cho ràng buộc `CHECK` và để xác định ràng buộc `CHECK` trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

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

XÓA RÀNG BUỘC KIỂM TRA

Để loại bỏ ràng buộc KIỂM TRA, hãy sử dụng SQL sau:

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;

MySQL:

ALTER TABLE Persons
DROP CHECK CHK_PersonAge;