Chủ Nhật, 30 tháng 7, 2023

Ràng buộc Check trong SQL

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.

Mục lục

  • 1. Tạo ràng buộc CHECK trong lệnh CREATE TABLE
  • 2. Tạo ràng buộc CHECK trong lệnh ALTER TABLE
  • 3. Xóa ràng buộc CHECK ra khỏi table

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.

MySQL
1
2
3
4
5
6
7
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
1
2
3
4
5
6
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 tranvanbinh.vn

MySQL / SQL Server / Oracle / MS Access
1
2
3
4
5
6
7
8
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.

MySQL / SQL Server / Oracle / MS Access
1
2
ALTER TABLE Persons<br>
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.

MySQL / SQL Server / Oracle / MS Access
1
2
ALTER TABLE Persons<br>
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é.

SQL Server / Oracle / MS Access
1
2
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;

MySQL
1
2
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;

Vậy là xong, rất đơn giản và dễ hiểu.

=============================
Nếu bạn muốn tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ kinh nghiệm, thủ tục, quy trình, bí kíp thực chiến mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin1_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master