SQL Server: Ràng buộc CHECK

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Ràng buộc kiểm tra (CHECK) dùng để giới hạn giá trị dữ liệu nhập vào trong cột.

Ví dụ, cột điểm của sinh viên chỉ lưu trữ các điểm số trong đoạn [0-10]. Để đảm bảo điều này bạn sử dụng ràng buộc CHECK để giới hạn giá trị nhập vào cột điểm của sinh viên chỉ trong đoạn [0-10] thì người dùng sẽ không thể nhập những giá trị nằm ngoài vùng này.

Ràng buộc CHECK đảm bảo toàn vẹn dữ liệu.

Nếu bạn đặt ràng buộc CHECK trên một cột thì nó sẽ giới hạn giá trị chỉ cho cột đó.

Nhưng nếu bạn đặt ràng buộc CHECK trên bảng thì nó có thể giới hạn giá trị cho nhiều cột của bảng đó.

Để tạo ràng buộc CHECK ta có các cách sau:

Cách 1: Được thể hiện ở ví dụ sau:

CREATE TABLE Marks(

studentid int not null,

subjectid int not null,

datetest date,

mark float CHECK(mark between 0 and 10)

);

Cách 2: Được thể hiện ở ví dụ sau:

CREATE TABLE Marks(

studentid int not null,

subjectid int not null,

datetest date,

mark float,

CHECK(mark between 0 and 10 and datetest>='2021/01/01')

);

Cách 3: Được thể hiện ở ví dụ sau:

CREATE TABLE Marks(

studentid int not null,

subjectid int not null,

datetest date,

mark float,

constraint ck_mark_datetest CHECK(mark between 0 and 10 and datetest>='2021/01/01')

);

Cách 4: Sử dụng cú pháp sau:

ALTER TABLE Tên_bảng ADD CHECK(Điều_kiện);

Ví dụ:

ALTER TABLE Student ADD CHECK(mark between 0 and 10 and datetest>='2021/01/01');

Cách 5: Sử dụng cú pháp sau:

ALTER TABLE Tên_bảng ADD CONSTRAINT Tên_ràng_buộc CHECK(Điều_kiện);

Ví dụ:

ALTER TABLE Student ADD CONSTRAINT ck_mark_datetest CHECK(mark between 0 and 10 and datetest>='2021/01/01');

» Tiếp: Ràng buộc DEFAULT
« Trước: Foreign Key (Khoá ngoại)
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!