Bài này bạn sẽ được học cách tạo ràng buộc giá trị trong SQL bằng lệnh CHECK, cách viết nó thông qua các hệ quản trị CSDL như SQL Server, MySQL và Oracle.
Ràng buộc giá trị CHECK rất hữu ích trong việc đảm bảo tính toàn vẹn của dữ liệu. Ví dụ bạn muốn điểm số của học sinh phải nằm trong khoảng [0-10], hoặc giới tính là Năm hoặc Nữ, và nhiều trường hợp tương tự thì có thể sử dụng ràng buộc CHECK.
1. Tạo ràng buộc CHECK trong lệnh CREATE TABLE
Trong ví dụ dưới đây sẽ tạo ràng buộc CHECK ở column age
, vì là bảng lưu trữ nhân viên nên bắt buộc chỉ tuyển những người trên 18 tuổi.
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CHECK (Age>=18) );
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int CHECK (Age>=18) );
Trường hợp bạn có nhiều column sử dụng CHECK thì nên đặt nó ở cuối các column trong lệnh tạo bảng, dùng toán tử AND để nối các ràng buộc lại. Cách này rất hay vì ta có thể đặt tên cho CHECK.
Bài viết này được đăng tại [kiso.vn]
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') );
2. Tạo ràng buộc CHECK trong lệnh ALTER TABLE
Lệnh Alter Table được sử dụng rất nhiều trong việc thay đổi cấu trúc của table, và nó cũng được dùng để tạo CHECK sau khi bạn đã tạo xong table.
ALTER TABLE Persons
ADD CHECK (Age>=18);
Tương tự như Primary Key và Foreign Key, bạn nên đặt tên cho CHECK để sau này có thể xóa nó dễ dàng hơn.
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
3. Xóa ràng buộc CHECK ra khỏi table
Nếu bạn đã tạo CHECK rồi nhưng sau đó không muốn có ràng buộc đó nữa thì hãy sử dụng lệnh ALTER TABLE kết hợp với từ khóa DROP nhé.
ALTER TABLE Persons DROP CONSTRAINT CHK_PersonAge;
ALTER TABLE Persons DROP CHECK CHK_PersonAge;
Vậy là xong, rất đơn giản và dễ hiểu.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Tạo ràng buộc CHECK trong lệnh CREATE TABLE2....
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Tạo ràng buộc CHECK trong lệnh CREATE TABLE2. Tạo ràng buộc CHECK trong lệnh ALTER TABLE3. Xóa ràng buộc CHECK ra khỏi table1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Tạo ràng buộc CHECK trong lệnh CREATE TABLE2. Tạo ràng buộc CHECK trong lệnh ALTER TABLE3. Xóa ràng buộc CHECK ra khỏi tableV. Phân tích và khai thác các lỗ hổng Directory...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Tạo ràng buộc CHECK trong lệnh CREATE TABLE2. Tạo ràng buộc CHECK trong lệnh ALTER TABLE3. Xóa ràng buộc CHECK ra khỏi tableV. Phân tích và khai thác các lỗ hổng Directory...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Tạo ràng buộc CHECK trong lệnh CREATE TABLE2. Tạo ràng buộc CHECK trong lệnh ALTER TABLE3. Xóa ràng buộc CHECK ra khỏi tableIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với...