Cú pháp SQL CHECK Constraint

SQL CHECK Constraint là gì?

Ràng buộc CHECK (CHECK constraint) trong SQL là một loại ràng buộc toàn vẹn dữ liệu được sử dụng để giới hạn giá trị được phép lưu trữ trong một cột. Nó cho phép bạn xác định một điều kiện mà tất cả các giá trị trong cột đó phải đáp ứng.

check 1

Cú pháp:

ALTER TABLE <Ten bang>
ADD CONSTRAINT <Ten rang buoc> CHECK (<Dieu kien>);

Trong đó:

  • <Ten bang>: Tên của bảng chứa cột cần ràng buộc.
  • <Ten rang buoc>: Tên của ràng buộc CHECK.
  • <Dieu kien>: Biểu thức Boolean (TRUE hoặc FALSE) được sử dụng để kiểm tra giá trị của cột.

Ví dụ:

ALTER TABLE Employees
ADD CONSTRAINT CheckSalary CHECK (Salary > 1000000);

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')
);
--Ràng buộc này đảm bảo rằng tất cả nhân viên (Employees) phải có mức lương (Salary) cao hơn 1.000.000.

CHECK on ALTER TABLE

-- MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);

-- MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');

Xoá CHECK Constraint:

--Oracle…
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;

--MySQL
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;

Lưu ý:

  • Ràng buộc CHECK có thể được sử dụng với các toán tử so sánh, toán tử logic và các hàm SQL.
  • Ràng buộc CHECK chỉ áp dụng cho các giá trị mới được chèn vào hoặc cập nhật trong cột.
  • Nếu một bản ghi vi phạm ràng buộc CHECK, thao tác INSERT hoặc UPDATE sẽ bị lỗi.

Một số lợi ích khi sử dụng ràng buộc CHECK:

  • Đảm bảo tính chính xác và toàn vẹn của dữ liệu.
  • Giúp ngăn chặn lỗi dữ liệu.
  • Làm cho cơ sở dữ liệu của bạn đáng tin cậy hơn.

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA), là người đang tập tành viết lách trên blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. #Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn cần người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận