Ad
Thủ Thuật Công Nghệ

Cách sử dụng Constraint trong SQL như thế nào?

Pinterest LinkedIn Tumblr

Constraint trong SQL đại diện cho những quy tắc áp dụng cho cột trong bảng, đặt ra để hạn chế dữ liệu được thêm, sửa đổi, hoặc xóa. Đây là một thuật ngữ quan trọng trong cơ sở dữ liệu. Để hiểu rõ về các ràng buộc này hãy cùng Wiki Lanit tìm hiểu chi tiết về Constraint trong SQL.

Constraint trong SQL là gì?

Ràng buộc được áp dụng để đảm bảo tính chính xác và sự toàn vẹn của dữ liệu thông qua việc kiểm soát các điều kiện đầu vào.

Ràng buộc trong SQL là một bộ quy tắc được thiết lập cho cột hoặc bảng để hạn chế loại dữ liệu được nhập vào bảng. Khi thực hiện các thao tác INSERT, UPDATE, hoặc DELETE, hệ quản trị cơ sở dữ liệu quan hệ sẽ kiểm tra xem dữ liệu có vi phạm ràng buộc nào không. Trong trường hợp xung đột, thao tác sẽ bị hủy bỏ và trả về lỗi. Lập trình viên có khả năng xác định ràng buộc ở cấ

Constraint trong SQL là gì?
Constraint trong SQL là gì?

p độ cột hoặc bảng. Ràng buộc cấp độ cột áp dụng chỉ cho một cột, trong khi ràng buộc cấp độ bảng áp dụng cho toàn bộ bảng.

Một số loại Constraint phổ biến

Dưới đây là một số loại Constraint phổ biến như sau:

  • NOT NULL: Ràng buộc này đảm bảo rằng một cột không chấp nhận giá trị NULL. Nó yêu cầu mỗi hàng phải có giá trị cho cột đó, không được để trống.
  • UNIQUE: Ràng buộc UNIQUE đặt ra yêu cầu rằng tất cả các giá trị trong cột phải là duy nhất, nghĩa là không có hai hàng nào trong cột có cùng một giá trị. Nó không bắt buộc giá trị của cột phải là NOT NULL.
  • PRIMARY KEY: Khóa chính là một hoặc một tập các trường dữ liệu có giá trị duy nhất trong một bảng. Nó có thể được coi như là một loại đặc biệt của ràng buộc UNIQUE, nhưng cũng yêu cầu các cột này không chấp nhận giá trị NULL.
  • FOREIGN KEY: Ràng buộc khóa ngoại được sử dụng để thiết lập mối quan hệ giữa hai bảng. Nó đảm bảo rằng giá trị trong cột của bảng con phải có trong cột của bảng cha. Cột được liên kết trong bảng con phải tham chiếu đến một cột hoặc tập các cột duy nhất trong bảng cha.
  • CHECK: Ràng buộc CHECK giúp kiểm tra tính hợp lệ của dữ liệu được thêm vào cột dựa trên một điều kiện được xác định trước. Ví dụ: kiểm tra xem một cột số nguyên có giá trị lớn hơn 0 hay không.
  • DEFAULT: Ràng buộc này xác định giá trị mặc định cho một cột nếu không có giá trị cụ thể nào được cung cấp khi thêm một bản ghi mới.

Một số ví dụ

Để hiểu rõ hơn về Constraint trong SQL, hãy theo dõi một số ví dụ dưới đây:

Sơ đồ dưới đây minh họa thuật toán quản lý vay có tài sản thế chấp:

Thiết lập NOT NULL vào cột MaKH tại bảng KHACHHANG:

Tạo bảng:

CREATE TABLE KhachHang (

MaKH char(10) NOT NULL,

HoTen nvarchar(50),

DiaChi nvarchar(50),

DienThoai varchar(50),

NgaySinh date

);

Sửa bảng:

ALTER TABLE KhachHang MODIFY MaKH char(10) NOT NULL;

Thiết lập DEFAULT trong cột NgayVay với giá trị mặc định là hiện tại (trường hợp NgayVay không xác định)

 Tạo bảng:

CREATE TABLE Vay (

MaVay char(10) NOT NULL,

MaKH char(10) NOT NULL,

MaTaiSan char(10) NOT NULL,

MaNV char(10) NOT NULL,

NgayVay date DEFAULT GETDATE(),

ThoiHan int,

LaiSuat float,

SoTienVay money,

NgayHetHan date 

);

Sửa bảng:

ALTER TABLE Vay

ADD CONSTRAINT df_ngay_vay DEFAULT GETDATE() FOR NgayVay;

Cách xóa Constraint trong SQL

Cú pháp:

ALTER TABLE <tên table chứa ràng buộc>

DROP CONSTRAINT <tên ràng buộc muốn xóa bỏ>

Ví dụ: Xóa Constraint check_ngay_vao_lam trong bảng NhanVien:

ALTER TABLE NhanVien

DROP CONSTRAINT check_ngay_vao_lam

Hướng dẫn bỏ kích hoạt và kích hoạt ràng buộc

Có khi bạn muốn tạm ngừng kiểm tra ràng buộc mà không muốn xoá chúng. Để làm điều này, bạn có thể sử dụng tính năng tắt ràng buộc. Cú pháp như sau:

ALTER TABLE <tên table chứa ràng buộc>

NOCHECK CONSTRAINT <tên ràng buộc>

Ví dụ: Bỏ kích hoạt Constraint Check trong trường ThoiHan từ 1 đến 36 tháng thuộc bảng Vay

ALTER TABLE Vay

NOCHECK CONSTRAINT check_ngayhethan

Nếu muốn kích hoạt lại thì chúng ta có cú pháp:
ALTER TABLE <tên table chứa ràng buộc>

WITH CHECK CHECK CONSTRAINT <tên ràng buộc>

Kết luận

Trên đây là tổng hợp mọi thông tin bạn cần biết cơ bản về Constraint trong SQL bao gồm phân loại các ràng buộc, ví dụ minh họa, các cú pháp căn bản,… Nếu muốn nghiên cứu sâu hơn về khái niệm này thì đừng ngần ngại bình luận ngay để Wiki Lanit gửi bạn những nội dung chi tiết nhất nhé!

Mình là Tú Anh - Hiện mình đang đảm nhận một số mảng trong chiến dịch Marketing tại LANIT. Mình đã có kinh nghiệm nhiều năm trong mảng kinh doanh online, nên rất hy vọng với những kiến thức mình chia sẻ về lĩnh vực này sẽ thật sự hữu ích đối với các bạn.

Comments are closed.