Giới thiệu về SQL CHECK
SQL CHECK là một ràng buộc (constraint) được sử dụng để đảm bảo rằng các giá trị trong một cột nhất định thỏa mãn một điều kiện nào đó. Nó cho phép người dùng định nghĩa các quy tắc mà dữ liệu phải tuân thủ trước khi được chèn vào bảng. Nếu một giá trị không thỏa mãn điều kiện quy định bởi CHECK, hệ thống sẽ từ chối việc thêm hoặc cập nhật bản ghi đó.
Cú pháp của ràng buộc CHECK
Cú pháp chung để tạo một ràng buộc CHECK như sau:
CREATE TABLE tên_bảng ( cột1 kiểu_dữ_liệu, cột2 kiểu_dữ_liệu, ... CONSTRAINT tên_ràng_buộc CHECK (điều_kiện) );
Ràng buộc CHECK cũng có thể được thêm vào một bảng đã tồn tại như sau:
ALTER TABLE tên_bảng ADD CONSTRAINT tên_ràng_buộc CHECK (điều_kiện);
Ví dụ về SQL CHECK
1. Tạo bảng với ràng buộc CHECK
Dưới đây là ví dụ tạo một bảng mang tên "sinhvien" với ràng buộc CHECK để đảm bảo rằng độ tuổi của sinh viên không nhỏ hơn 18:
CREATE TABLE sinhvien ( id INT PRIMARY KEY, ten VARCHAR(100), tuoi INT, CONSTRAINT chk_tuoi CHECK (tuoi >= 18) );
2. Thêm dữ liệu vào bảng
Giả sử chúng ta muốn thêm các sinh viên vào bảng "sinhvien".
INSERT INTO sinhvien (id, ten, tuoi) VALUES (1, 'Nguyen Van A', 20); -- Thành công INSERT INTO sinhvien (id, ten, tuoi) VALUES (2, 'Nguyen Van B', 16); -- Thất bại
Giá trị tuổi là 16 không thỏa mãn điều kiện CHECK, vì vậy câu lệnh INSERT sẽ bị từ chối.
3. Thay đổi ràng buộc CHECK
Nếu bạn muốn thay đổi điều kiện của ràng buộc CHECK, bạn sẽ cần phải xóa ràng buộc hiện tại và sau đó thêm ràng buộc mới. Ví dụ:
ALTER TABLE sinhvien DROP CONSTRAINT chk_tuoi; ALTER TABLE sinhvien ADD CONSTRAINT chk_tuoi CHECK (tuoi >= 17);
Kết luận
Việc sử dụng ràng buộc CHECK trong SQL là một phần quan trọng trong việc duy trì tính toàn vẹn dữ liệu. Nó giúp kiểm soát các giá trị cho phép được lưu trữ trong bảng và bảo vệ dữ liệu khỏi những lỗi không mong muốn. Bằng cách áp dụng CHECK, bạn có thể đảm bảo rằng dữ liệu trong cơ sở dữ liệu của bạn luôn hợp lệ và có ý nghĩa.