Ràng buộc (Constraint) trong SQL




Ràng buộc (Constraint) là các qui tắc được áp đặt cho các cột dữ liệu trên table. Chúng được sử dụng để giới hạn kiểu dữ liệu nhập vào một bảng. Điều này đảm bảo tính chính xác và tính đáng tin cậy cho dữ liệu trong Database.

Ràng buộc (Constraint) có thể là column level hoặc table level. Ràng buộc cấp độ cột chỉ được áp dụng cho các cột, trong khi ràng buộc cấp độ bảng được áp dụng cho toàn bộ table.

Dưới đây là các ràng buộc có sẵn và được sử dụng phổ biến trong SQL. Các ràng buộc này đã được trình bày trong Các khái niệm RDBMS trong SQL, nhưng trong chương này, bạn cần thiết xem lại nó để hiểu rõ hơn vấn đề.

Các ràng buộc có thể được xác định khi một bảng được tạo với lệnh CREATE TABLE hoặc bạn có thể sử dụng lệnh ALTER TABLE để tạo các ràng buộc ngay sau khi bảng được tạo.

Xóa ràng buộc trong SQL

Bất kỳ ràng buộc nào bạn đã định nghĩa cũng có thể bị xóa bởi sử dụng lệnh ALTER TABLE với tùy chọn DROP TABLE.

Ví dụ, để xóa ràng buộc khóa chính (primary key) trong bảng EMPLOYEES, bạn có thể sử dụng lệnh sau:

ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;

Một số Database có thể cung cấp phím tắt để xóa các ràng buộc cụ thể. Ví dụ, để xóa ràng buộc khóa chính cho một bảng trong Oracle, bạn có thể sử dụng lệnh sau:

ALTER TABLE EMPLOYEES DROP PRIMARY KEY;

Một số Database cho phép bạn khả năng vô hiệu hóa các ràng buộc. Thay vì xóa vĩnh viễn một ràng buộc từ Database, bạn có thể muốn vô hiệu hóa tạm thời ràng buộc đó, và sau đó kích hoạt lại nó.

Ràng buộc toàn vẹn trong SQL

Ràng buộc toàn vẹn (integrity constraint) được sử dụng để đảm bảo tính chính xác và tính nhất quán của dữ liệu trong một Relational Database. Toàn vẹn dữ liệu được xử lý trong một Cơ sở dữ liệu quan hệ thông qua khái niệm của toàn vẹn tham chiếu (referential integrity - RI).

Có nhiều loại ràng buộc toàn vẹn mà đóng vai trong ràng buộc tham chiếu (RI). Những ràng buộc này bao gồm các ràng buộc Primary Key, Foreign Key, Unique và một số ràng buộc khác đã được đề cập ở trên.