Constraint (Ràng Buộc) Trong Sql Server

CONSTRAINT (RÀNG BUỘC) trong SQL server
*

CONSTRAINT là một trong những quy tắc áp dụng trong SQL Server. Có tương đối nhiều loại CONSTRAINT khác nhau. Cùng tôi tò mò kỹ rộng nhé.

Bạn đang xem: Constraint (ràng buộc) trong sql server


1. CONSTRAINT vào SQL là gì?

Constraint được thực hiện để bảo đảm an toàn các điều kiện đầu vào đúng, đảm bảo an toàn sự chính xác và sự toàn vẹn của dữ liệu.

Thông thường sẽ sở hữu 6 nhiều loại ràng buộc vào SQL Server. Mỗi nhiều loại này đầy đủ là phần nhiều quy tắc được áp dụng trên những cột dữ liệu

2. Những RÀNG BUỘC gồm sẵn trong SQL Server

Loại ràng buộcÝ nghĩa
NOT NULLKhi muốn dữ liệu không nhận cực hiếm NULL vào cột dữ liệu.
DEFAULTNếu những dữ liệu của cột không xác định hoặc ko nhập sẽ được gán cho những giá trị mặc định trước đó đã setting.
UNIQUEĐảm bảo dữ liệu không xẩy ra lặp lại với các dữ liệu khác.
PRIMARY KEY (Khóa chính)Sử dụng thiết đặt khóa thiết yếu trong bảng, xác định các dữ liệu phải là độc nhất (không trùng lặp) trên những cột được gán lệnh. Việc khai báo yêu thương cầu những cột cần NOT NULL.
FOREIGN KEY (Khóa ngoại)Mỗi hàng/bản ghi được trao diện duy nhất trong ngẫu nhiên bảng nào.

Xem thêm: Những Bài Hát Hay Nhất Của Hồ Hoàng Yến, Ca Sĩ Hồ Hoàng Yến

CHECKĐảm bảo những dữ liệu vào cột phải thỏa mãn nhu cầu điều kiện mà bạn đã gán.
INDEXLấy dữ liệu từ Database nhanh nhất

Những lệnh buộc ràng này hoàn toàn có thể được khẳng định khi sản xuất một bảng do CREATE TABLE hoặc ALTER TABLE giúp đỡ bạn tạo ra các ràng buộc trước lúc tạo bảng.

2.1 Một số để ý khác so với RÀNG BUỘC CHECK

Không thể định trong VIEWBạn chỉ có thể tham chiếu các dữ liệu ở bảng vẫn khai báo ràng buộc. Còn sót lại không thể tham sống bảng khác, nếu như muốn phải cần sử dụng Function để trích xuất dữ liệu.Trong định nghĩa đk không thể sử dụng những truy vấn bé (Subquery)

2.2 Ví dụ thay thể

Thuật toán cai quản Vay có thế chấp vay vốn tài sản dễ dàng và đơn giản thể hiện qua sơ đồ gia dụng như sau:

*

Thiết lập lệnh NOT NULL vào cột MaKH ở bảng KHACHHANG

Nếu tạo bắt đầu bảng:

CREATE TABLE KhachHang (

MaKH char(10) NOT NULL,

HoTen nvarchar(50),

DiaChi nvarchar(50),

DienThoai varchar(50),

NgaySinh date

);

Nếu sửa bảng:

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

Sử dụng lệnh DEFAULT

Cột NgayVay lấy cực hiếm mặc định là ngày hiện tại nếu ngày vay cấp thiết xác định. Thực hiện function GETDATE() để mang giá trị ngày hiện tại tại.

Nếu tạo new bảng:

CREATE TABLE vay mượn (

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

);

Nếu sửa bảng

ALTER TABLE Vay

ADD CONSTRAINT df_ngay_vay mặc định GETDATE() FOR NgayVay;

Sử dụng lệnh PRIMARY KEY (khóa chính)

Nếu bạn áp dụng lệnh này cho MaTaiSan trong bảng MATAISAN

Tạo mới bảng:

Cách 1: Không khai báo Constraint

CREATE TABLE TaiSan (

MaTaiSan char(10) PRIMARY KEY,

TenTaiSan nvarchar(70) NOT NULL,

LoaiTaiSan nvarchar(30),

GiaTri money

);

Cách 2: Khai báo Constraint

CREATE TABLE TaiSan (

MaTaiSan char(10) NOT NULL,

CONSTRAINT pk_ma_ts PRIMARY KEY (MaTaiSan),

TenTaiSan nvarchar(70) NOT NULL,

LoaiTaiSan nvarchar(30),

GiaTri money

);

Sửa đổi bảng:

ALTER TABLE TaiSan

ADD CONSTRAINT pk_mats PRIMARY KEY (MaTaiSan);

Sử dụng FOREIGN KEY (khóa ngoại)

Lệnh ràng buộc lấy một ví dụ được thực hiện trên bảng VAY mang đến cột MaKH

Tạo new bảng

Cách 1: ko khai báo Constraint

CREATE TABLE vay mượn (

MaVay char(10) NOT NULL,

MaKH char(10) FOREIGN KEY REFERENCES KhachHang(MaKH),

MaTaiSan char(10),

MaNV char(10),

NgayVay date,

ThoiHan int,

LaiSuat float,

SoTienVay money,

NgayHetHan date

);

Cách 2: Khai báo constraint

CREATE TABLE vay (

MaVay char(10) NOT NULL,

MaKH char(10),

CONSTRAINT FOREIGN KEY (MaKH) REFERENCES KhachHang(MaKH),

MaTaiSan char(10),

MaNV char(10),

NgayVay date,

ThoiHan int,

LaiSuat float,

SoTienVay money,

NgayHetHan date

);

Sửa thay đổi bảng

ALTER TABLE Vay

ADD CONSTRAINT fk_makh FOREIGN KEY (MaKH) REFERENCES KhachHang(MaKH);

Sử dụng lệnh UNIQUE

Áp dụng trong bảng KhachHang đến trường DienThoai

Tạo bắt đầu bảng

Cách 1:

CREATE TABLE KhachHang (

MaKH char(10) NOT NULL,

HoTen nvarchar(50) NOT NULL,

DiaChi nvarchar(50) NOT NULL,

DienThoai varchar(50) UNIQUE,

NgaySinh date

);

Cách 2:

CREATE TABLE KhachHang (

MaKH char(10) NOT NULL,

HoTen nvarchar(50) NOT NULL,

DiaChi nvarchar(50) NOT NULL,

DienThoai varchar(50),

CONSTRAINT unique_dien_thoai quality (DienThoai)

NgaySinh date

);

Sửa đổi bảng:

ALTER TABLE KhachHang

ADD CONSTRAINT unique_dien_thoai quality (DienThoai);

Sử dụng lệnh kiểm tra constraint trong sql

ALTER TABLE NhanVien

ADD CONSTRAINT check_ngay_vao_lam check (NgayVaoLam > ‘1997-1-1’);

Tao Constraint kiểm tra trên trường NgayHetHan phải to hơn NgayVay của bảng Vay

ALTER TABLE Vay

ADD CONSTRAINT check_ngayhethan check (NgayHetHan > NgayVay);

Tao Constraint chất vấn trên trường GiaTri>=2 của bảng TaiSan

ALTER TABLE TaiSan

ADD CONSTRAINT check_gia_tri kiểm tra (GiaTri > 2);

Tao Constraint kiểm tra trên trường ThoiHan khoảng 1 cho 12 mon của bảng Vay

ALTER TABLE Vay

ADD CONSTRAINT check_thoi_han check (ThoiHan BETWEEN 1 và 12);

3. Xóa RÀNG BUỘC vào SQL

Lệnh xóa bỏ

ALTER TABLE

DROP CONSTRAINT

Ví dụ: xóa bỏ kiểm tra trên trường ThoiHan tự 1-12 tháng gán ngơi nghỉ trên

ALTER TABLE Vay

DROP CONSTRAINT check_thoi_han check (ThoiHan BETWEEN 1 & 12);

4. Vứt kích hoạt với kích hoạt CONSTRAINT

Đôi khi chúng ta không ước ao lệnh CONSTRAINT chuyển động nhưng lại không muốn xóa chúng. Đừng lo ngại vì đã gồm lệnh quăng quật và kích hoạt lại lệnh.

Câu lệnh là:

ALTER TABLE

NOCHECK CONSTRAINT

Ví dụ: loại bỏ hóa Constraint kiểm tra trên trường NgayHetHan phải lớn hơn NgayVay của bảng Vay

ALTER TABLE Vay

NOCHECK CONSTRAINT check_ngayhethan check (NgayHetHan > NgayVay);

Trường hợp mong mỏi kích hoạt lại ràng buộc, bạn sử dụng lệnh sau:

ALTER TABLE

WITH check CHECK CONSTRAINT

Ví dụ: Kích hoạt lại lấy ví dụ trên

ALTER TABLE Vay

WITH kiểm tra CHECK CONSTRAINT check_ngayhethan check (NgayHetHan > NgayVay);

5. RÀNG BUỘC toàn vẹn trong SQL Server

Integrity constraint (ràng buộc toàn vẹn) nên làm sử dụng khi bạn có nhu cầu đảm bảo 100% sự đúng đắn và tính đồng nhất trong những dữ liệu của cửa hàng dữ liệu.

Integrity constraint được sử dụng trải qua khái niệm toàn vẹn tham chiếu (referential integrity – RI)

Như vậy là tôi đã hướng dẫn các bạn add constraint vào sql. Khá đơn giản và dễ dàng thôi, nhưng chúng ta cần nỗ lực thực hiện nay mỗi ngày. Đón chờ các nội dung bài viết tiếp theo của mình nữa nhé.