Constraint trong sql là gì

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

CONSTRAINT là giữa những quy tắc vận dụng trong SQL Server. Có tương đối nhiều loại CONSTRAINT không giống nhau. Thuộc tôi tò mò kỹ hơn nhé.

Bạn đang xem: Constraint trong sql là gì


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

Constraint được thực hiện để đảm bảo các đk đầu vào đúng, đảm bảo sự đúng mực và sự trọn vẹn của dữ liệu.

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

2. Các RÀNG BUỘC có 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 các dữ liệu của cột không xác minh hoặc ko nhập sẽ tiến hành gán cho những giá trị mặc định trước này đã setting.
UNIQUEĐảm bảo dữ liệu không biến thành lặp lại với các dữ liệu khác.
PRIMARY KEY (Khóa chính)Sử dụng thiết lập khóa chủ yếu trong bảng, xác định các dữ liệu phải là nhất (không trùng lặp) trên các cột được gán lệnh. Việc khai báo yêu thương cầu các cột đề xuất NOT NULL.
FOREIGN KEY (Khóa ngoại)Mỗi hàng/bản ghi được nhận diện độc nhất trong bất kỳ bảng nào.

Xem thêm: Các Phiên Á Âu Mỹ - Các Phiên Giao Dịch Forex Theo Giờ

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

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

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

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

2.2 Ví dụ nạm thể

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

*

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

Nếu tạo new 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 lúc này nếu ngày vay chẳng thể xác định. Thực hiện function GETDATE() để lấy giá trị ngày hiện nay 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 mặc định GETDATE(),

ThoiHan int,

LaiSuat float,

SoTienVay money,

NgayHetHan date

);

Nếu sửa bảng

ALTER TABLE Vay

ADD CONSTRAINT df_ngay_vay default 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 mang lại MaTaiSan trong bảng MATAISAN

Tạo new 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 thay đổ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 ví dụ như được sử dụng trên bảng VAY mang đến cột MaKH

Tạo mới bảng

Cách 1: không 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 mượn (

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 đổ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 trên bảng KhachHang cho trường DienThoai

Tạo mới 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 thay đổi bảng:

ALTER TABLE KhachHang

ADD CONSTRAINT unique_dien_thoai chất lượng (DienThoai);

Sử dụng lệnh kiểm tra constraint vào sql

ALTER TABLE NhanVien

ADD CONSTRAINT check_ngay_vao_lam kiểm tra (NgayVaoLam > ‘1997-1-1’);

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

ALTER TABLE Vay

ADD CONSTRAINT check_ngayhethan kiểm tra (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 check (GiaTri > 2);

Tao Constraint bình chọn trên trường ThoiHan khoảng 1 mang lại 12 tháng của bảng Vay

ALTER TABLE Vay

ADD CONSTRAINT check_thoi_han kiểm tra (ThoiHan BETWEEN 1 and 12);

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

Lệnh xóa bỏ

ALTER TABLE

DROP CONSTRAINT

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

ALTER TABLE Vay

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

4. Quăng quật kích hoạt và kích hoạt CONSTRAINT

Đôi khi chúng ta không ý muốn lệnh CONSTRAINT hoạt động nhưng lại không thích xóa chúng. Đừng lo lắng vì đã gồm lệnh bỏ và kích hoạt lại lệnh.

Câu lệnh là:

ALTER TABLE

NOCHECK CONSTRAINT

Ví dụ: vô hiệu hóa hóa Constraint check trên ngôi trường NgayHetHan phải lớn hơn NgayVay của bảng Vay

ALTER TABLE Vay

NOCHECK CONSTRAINT check_ngayhethan kiểm tra (NgayHetHan > NgayVay);

Trường hợp muốn kích hoạt lại ràng buộc, bạn áp dụng lệnh sau:

ALTER TABLE

WITH check CHECK CONSTRAINT

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

ALTER TABLE Vay

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

5. RÀNG BUỘC toàn diện trong SQL Server

Integrity constraint (ràng buộc toàn vẹn) nên làm sử dụng khi bạn muốn đảm bảo 100% sự đúng chuẩn và tính đồng điệu trong những dữ liệu của cơ sở dữ liệu.

Xem thêm: Cách Giảm Phí Thường Niên Là Gì, Hội Nghị Thường Niên Là Gì

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

Như vậy là tôi vẫn 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 bạn cần nỗ lực thực hiện mỗi ngày. Đón ngóng các bài viết tiếp theo của tôi nữa nhé.