Các ràng buộc trong SQL

Ràng buộc (Constraint) là các quy tắc được áp dụng trên các cột dữ liệu của một bảng. Chúng được sử dụng để kiểm tra tính hợp lệ của dữ liệu đầu vào, đảm bảo tính chính xác, độ tin cậy và tính toàn vẹn của dữ liệu trong database.

Các loại ràng buộc phổ biến

Dưới đây là một số các ràng buộc phổ biến nhất được sử dụng trong SQL.

Ràng buộc Ý nghĩa
NOT NULL Đảm bảo dữ liệu của cột không được nhận giá trị NULL.
DEFAULT Cung cấp một giá trị mặc định cho một cột trong trường hợp dữ liệu của cột không được nhập vào hay không được xác định.
UNIQUE Đảm bảo rằng dữ liệu của cột là duy nhất, tất cả các giá trị trong một cột là khác nhau không trùng lặp.
PRIMARY Key Dùng để thiết lập khóa chính trên bảng, giá trị của cột làm khóa chính phải là duy nhất, không được trùng lặp. Việc khai báo ràng buộc khóa chính yêu cầu các cột phải NOT NULL.
FOREIGN Key Dùng để thiết lập khóa ngoại trên bảng, tham chiếu đến bảng khác thông qua giá trị của cột được liên kết. Giá trị của cột được liên kết phải là duy nhất trong bảng kia.
CHECK Đảm bảo tất cả các giá trị trong một cột thỏa mãn một số điều kiện.
INDEX Dùng để tạo và lấy dữ liệu từ cơ sở dữ liệu một cách nhanh chóng.

Các ràng buộc có thể được chỉ định khi bạn tạo bảng với câu lệnh CREATE TABLE hoặc sau khi tạo bảng với câu lệnh ALTER TABLE.

Xóa bỏ ràng buộc (Drop Constraint)

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

Ví dụ, để drop Constraint khóa chính trong bảng NHANVIEN, bạn có thể sử dụng lệnh sau đây.

ALTER TABLE NHANVIEN DROP CONSTRAINT NHANVIEN_PK;

Một số cơ sở dữ liệu có thể cung cấp các phím tắt để drop các ràng buộc nhất một cách ngắn gọn hơn. Ví dụ, để loại bỏ 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 đây.

ALTER TABLE NHANVIEN DROP PRIMARY KEY;

Trong phần tiếp theo, chúng ta sẽ tìm hiểu về mệnh đề JOIN trong SQL, các bạn nhớ theo dõi nhé.

Bài trước: Sắp xếp kết quả trong SQL

Bài tiếp: Mệnh đề JOIN trong SQL

Thứ Năm, 22/08/2019 11:10
52 👨 968