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 đề.
- Ràng buộc NOT NULL trong SQL: Bảo đảm một cột không thể có giá trị NULL.
- Ràng buộc DEFAULT trong SQL: Cung cấp một giá trị mặc định cho cột khi không được xác định.
- Ràng buộc UNIQUE trong SQL: Bảo đảm tất cả giá trị trong một cột là khác nhau.
- Ràng buộc PRIMARY Key trong SQL: Mỗi hàng/bản ghi được nhận diện một cách duy nhất trong một bảng.
- Ràng buộc FOREIGN Key trong SQL: Mỗi hàng/bản ghi được nhận diện một cách duy nhất trong bất kỳ bảng nào.
- Ràng buộc CHECK trong SQL: Bảo đảm tất cả giá trị trong một cột thỏa mãn các điều kiện nào đó.
- Ràng buộc INDEX trong SQL: Sử dụng để tạo và lấy dữ liệu từ Database một cách nhanh chóng.
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).