Thiết lập ràng buộc trong SQL Server
Thiết lập ràng buộc trong SQL Server
Thiết lập ràng buộc trong SQL Server là các quy tắc được áp dụng trên các cột tại bảng để giới hạn, kiểm tra và bảo đảm tính chính xác và tính toàn vẹn của dữ liệu của cơ sở dữ liệu.
Để tìm hiểu chi tiết về ràng buộc này, hãy cùng chúng tôi tìm hiểu ngay trong bài viết dưới đây của R2S nhé!
Thiết lập ràng buộc trong SQL Server là gì?
Thiết lập ràng buộc là quá trình tạo ra các quy định khi thêm mới hoặc thay đổi dữ liệu. Xét ví dụ thêm mới hoặc thay đổi dữ liệu cột “giới tính” của bảng “SinhVien”, chúng ta chỉ được nhập dữ liệu là “Nam” hoặc “Nữ”.
Phân loại ràng buộc dữ liệu
Ràng buộc khoá chính (primary key constraint)
Ràng buộc khoá chính (primary key constraint) có thể được thiết lập trong quá trình tạo bảng. Tuy nhiên, chúng ta cũng có thể thiết lập ràng buộc này sau khi đã tạo xong bảng với cú pháp sau:
alter table tên_bảng add constraint tên_constraint primary key(tên_cột)
Ví dụ thiết lập khoá chính cho bảng Lop là cột MaLop
alter table Lop add constraint Lop_MaLop_PK primary key(MaLop)
Ràng buộc khoá ngoại (foreign key constraint) – Thiết lập trong sql server
Ràng buộc khoá ngoại (foreign key constraint) cũng có thể được thiết lập trong quá trình tạo bảng. Nếu trong khi tạo bảng chúng ta chưa thiết lập ràng buộc này, thì hãy sử dụng cú pháp sau
alter table tên_bảng add constraint tên_constraint
foreign key (tên_cột) references tên_bảng_tham_chiếu
Ví dụ thiết lập khoá ngoại cho bảng SinhVien là cột MaLop
alter table SinhVien add constraint SinhVien_MaLop_FK
foreign key (MaLop) references Lop
Ràng buộc dữ liệu duy nhất (Unique constraint)
Ràng buộc dữ liệu duy nhất (Unique constraint) không cho phép dữ liệu bị trùng lặp. Ràng buộc này được sử dụng để thiết lập cho những cột mà dữ liệu nếu được nhập thì không được trùng lặp.
Tuy nhiên, đối với những cột này, chúng ta có thể không chỉ định dữ liệu (null). Đây chính là điểm khác biệt giữa primary key và unique.
alter table tên_bảng add constraint tên_constraint unique(tên_cột)
Ví dụ thiết lập ràng buộc dữ liệu duy nhất cho cột TenLop của bảng Lop
alter table Lop add constraint Lop_TenLop_U unique(TenLop)
Ràng buộc check (Check constraint)
Ràng buộc check (Check constraint) qui định dữ liệu được thêm mới hoặc thay đổi phải thoả điều kiện được chỉ định trong lúc tiến hành thiết lập.
alter table tên_bảng add constraint tên_constraint check(điều_kiện)
Ví dụ thiết lập ràng buộc check cho cột GioiTinh của bảng SinhVien chỉ được phép nhập dữ liệu là Nam hoặc Nữ
alter table SinhVien add constraint SinhVien_GioiTinh_C check(GioiTinh = N'Nam' or GioiTinh = N'Nữ')
Ràng buộc dữ liệu mặc định (Default constraint)
Ràng buộc dữ liệu mặc định (Default constraint) sẽ chỉ định giá trị mặc định cho các cột khi thêm mới mà không cung cấp giá trị cho cột đó.
alter table tên_bảng add constraint tên_constraint default giá_trị for tên_cột
Ví dụ thiết lập ràng buộc dữ liệu mặc định cho cột NgaySinh là ngày hiện hành của bảng SinhVien. Sử dụng hàm getdate() để lấy ngày hiện hành của máy chủ.
alter table SinhVien add constraint SinhVien_NgaySinh_D default getdate() for NgaySinh
Bài tập thực hành thiết lập ràng buộc trong SQL Server
Câu 1: Tạo các ràng buộc cho bảng VATTU
– Tên vật tư phải duy nhất.
– Giá trị của cột PhanTram phải nằm trong khoảng từ 0 đến 100.
– Giá trị mặc định cho cột đơn vị tính là ‘Tấn’.
Câu 2: Tạo các ràng buộc cho bảng NHACC – Thiết lập ràng buộc trong sql server
– Tên nhà cung cấp và địa chỉ nhà cung cấp phải duy nhất.
– Giá trị mặc định cho cột điện thoại là ‘Chưa có’.
Câu 3: Tạo các ràng buộc cho bảng DONDH
– Giá trị mặc định cho cột ngày đặt hàng là ngày hiện tại.
Câu 4: Tạo các ràng buộc cho bảng CTDONDH
– Giá trị cho cột SLDat phải lớn hơn 0.
Câu 5: Tạo các ràng buộc cho bảng CTPNHAP
– Giá trị cho cột SLNhap phải lớn hơn 0 và giá trị cho cột DGNhap phải lớn hơn 0.
Câu 6: Tạo các ràng buộc cho bảng CTPXUAT – Thiết lập trong sql server
– Giá trị cho cột SLXuat phải lớn hơn 0 và giá trị cho cột DGXuat phải lớn hơn 0.
Câu 7: Tạo các ràng buộc cho bảng TONKHO
– Giá trị của các cột SLDau, TongSLN, TongSLX phải lớn hơn hoặc bằng 0.
– Giá trị mặc định cho các cột SLDau, TongSLN, TongSLX là 0.
Kết luận
Trên đây là hướng dẫn thiết lập ràng buộc trong sql server chi tiết mà bạn cần biết. Mong là bài viết này sẽ giúp bạn hiểu hơn và thao tác thành công nhé!
Bài viết gốc được đăng tại: giasutinhoc.vn