Giới Thiệu
Trong thế giới dữ liệu rộng lớn của SQL Server, ràng buộc chính là những người hùng thầm lặng đảm bảo tính nhất quán và chính xác. Hãy tưởng tượng bạn là một kiến trúc sư dữ liệu, bạn không muốn bất kỳ ai thêm tuổi là "-20" vào cơ sở dữ liệu của mình, phải không? Đó là lúc ràng buộc phát huy tác dụng. Bài viết này sẽ hướng dẫn bạn cách sử dụng ràng buộc trong SQL Server để kiểm soát dữ liệu của mình một cách hiệu quả. Từ việc đảm bảo tính duy nhất của khóa chính đến việc xác thực dữ liệu nhập vào, chúng ta sẽ cùng nhau khám phá các loại ràng buộc khác nhau và cách chúng bảo vệ dữ liệu quý giá của bạn.
Ràng Buộc Trong SQL Server Là Gì?
Ràng buộc trong SQL Server giống như những người bảo vệ dữ liệu của bạn. Chúng là những quy tắc được thiết lập trên các cột của bảng để đảm bảo dữ liệu được nhập vào luôn chính xác và hợp lệ.
Ví dụ, bạn có thể đặt ràng buộc cho cột "Tuổi" trong bảng "Sinh Viên" để đảm bảo rằng giá trị nhập vào luôn lớn hơn 0.
Phân Loại Ràng Buộc Dữ Liệu
Giống như một đội ngũ bảo vệ với nhiều vai trò, ràng buộc trong SQL Server cũng được chia thành nhiều loại, mỗi loại có nhiệm vụ riêng:
Ràng Buộc Khóa Chính (Primary Key Constraint)
Khóa chính là nền tảng của mọi bảng dữ liệu. Nó xác định duy nhất mỗi hàng trong bảng, giống như chứng minh thư của mỗi người vậy. Mỗi bảng chỉ có thể có một khóa chính.
Cú pháp:
alter table tên_bảng add constraint tên_constraint primary key(tên_cột)
Ví dụ:
alter table Lop add constraint Lop_MaLop_PK primary key(MaLop)
Ràng Buộc Khóa Ngoại (Foreign Key Constraint)
Khóa ngoại liên kết các bảng với nhau, giống như một cây cầu nối liền hai bờ sông. Nó đảm bảo rằng dữ liệu trong một bảng có liên quan đến dữ liệu trong bảng khác.
Cú pháp:
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ụ:
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 duy nhất đảm bảo rằng dữ liệu trong một cột là duy nhất, giống như số điện thoại của mỗi người vậy.
Cú pháp:
alter table tên_bảng add constraint tên_constraint unique(tên_cột)
Ví dụ:
alter table Lop add constraint Lop_TenLop_U unique(TenLop)
Ràng Buộc Check (Check Constraint)
Ràng buộc Check cho phép bạn đặt ra các điều kiện cụ thể cho dữ liệu được nhập vào, giống như một người gác cổng kiểm tra vé vào cửa vậy.
Cú pháp:
alter table tên_bảng add constraint tên_constraint check(điều_kiện)
Ví dụ:
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 mặc định tự động gán giá trị mặc định cho cột khi thêm một hàng mới mà không chỉ định giá trị cho cột đó, giống như một người phục vụ tự động mang ra ly nước lọc khi bạn đến quán ăn vậy.
Cú pháp:
alter table tên_bảng add constraint tên_constraint default giá_trị for tên_cột
Ví dụ:
alter table SinhVien add constraint SinhVien_NgaySinh_D default getdate() for NgaySinh
Bài Tập Thực Hành
Hãy cùng thử sức với một số bài tập nhỏ để củng cố kiến thức về 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
- 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
- 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
Ràng buộc trong SQL Server đóng vai trò quan trọng trong việc đảm bảo tính toàn vẹn và nhất quán dữ liệu. Hiểu rõ và sử dụng thành thạo các loại ràng buộc khác nhau là kỹ năng cần thiết cho bất kỳ ai muốn trở thành chuyên gia về cơ sở dữ liệu.