Constraint Sql Là Gì

Bài viết này mình vẫn chia đang một số kỹ năng và kiến thức về cách có mang buộc ràng trong MS SQL Server.

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

Constraint là gì?

Constraint là phần lớn nguyên tắc được áp dụng bên trên những cột dữ liệu, trên bảng. Được sử dụng để chất vấn tính phù hợp lệ của tài liệu vào, đảm bảo tính đúng chuẩn, tính toàn diện của tài liệu.

Các các loại constraint phổ biến

Loại ràng buộcÝ nghĩa
NOT NULLSử dụng để đảm bảo dữ liệu của cột ko được nhận quý giá NULL
DEFAULTGán quý giá khoác định trong trường phù hợp tài liệu của cột không được nhtràn vào hay không được xác minh.
UNIQUESử dụng để đảm bảo dữ liệu của cột là độc nhất vô nhị, ko trùng lặp quý giá bên trên thuộc 1 cột.
PRIMARY KEY (Khóa chính)Dùng nhằm tùy chỉnh thiết lập khóa thiết yếu trong bảng, xác minh giá trị bên trên tập những cột làm khóa chính bắt buộc là duy nhất, không được giống nhau. Việc khai báo buộc ràng khóa thiết yếu hưởng thụ các cột bắt buộc NOT NULL.

Xem thêm: Dịch Vụ Làm Hộ Chiếu Tphcm, Hộ Chiếu Tại Tp Hồ Chí Minh

FOREIGN KEY (Khóa ngoại)Dùng nhằm tùy chỉnh khóa ngoại trong bảng, tđam mê chiếu cho bảng khác thông qua giá trị của cột được links. Giá trị của cột được liên kết yêu cầu là tuyệt nhất trong bảng tê.
CHECKBảo đảm toàn bộ giá trị trong cột vừa lòng ĐK làm sao kia. Đây là bề ngoài sử dụng phổ cập để bình chọn tính hòa hợp lệ của tài liệu (validate data)

Một số để ý so với buộc ràng CHECK:

Không thể quan niệm vào VIEWCác ĐK thiết lập cấu hình nên tsi mê chiếu cho cột trong cùng 1 bảng dùng làm knhị báo ràng buộc, thiết yếu tmê say chiếu tới những cột làm việc bảng không giống. Trường phù hợp ước ao tmê man chiếu mang lại bảng không giống thì có thể sử dụng Function nhằm trích xuất tài liệu.Không thể sử dụng subquery (truy hỏi vấn con) trong định nghĩa điều kiệnChúng ta hoàn toàn có thể khai báo ràng buộc trong câu lệnh CREATE TABLE (tạo bắt đầu bảng) hoặc ALTER TABLE (Sửa thay đổi bảng)

lấy một ví dụ nắm thể

Cho bài xích tân oán làm chủ Vay có thế chấp vay vốn tài sản đơn giản dễ dàng biểu lộ qua sơ đồ dùng nút đồ vật lý nhỏng sau:

*

1. Thiết lập ràng buộc NOT NULL bên trên cột MaKH của bảng KhachHangTrường thích hợp sản xuất bắt đầu table:

CREATE TABLE KhachHang (MaKH char(10) NOT NULL,HoTen nvarchar(50),DiaChi nvarchar(50),DienThoai phong varchar(50),NgaySinch date);Trường thích hợp sửa thay đổi table:ALTER TABLE KhachHang MODIFY MaKH char(10) NOT NULL;2. Thiết lập buộc ràng DEFAULT cột NgayVay rước cực hiếm mang định là ngày hiện giờ vào ngôi trường đúng theo ngày vay mượn ko được xác định. (Sử dụng function GETDATE() để mang giá trị ngày hiện nay tại)Trường phù hợp tạo ra new table: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 );Trường hợp sửa đổi table:ALTER TABLE VayShowroom CONSTRAINT df_ngay_vay DEFAULT GETDATE() FOR NgayVay;3. Thiết lập ràng buộc PRIMARY KEY (khóa chính) mang đến cột MaTaiSan bên trên table TaiSanTrường hợp tạo new table:Cách 1: khái niệm trực tiếp lúc knhị báo cột, 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: Định nghĩa 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 );Trường đúng theo sửa thay đổi table:ALTER TABLE TaiSanĐịa Chỉ CONSTRAINT pk_mats PRIMARY KEY (MaTaiSan);4. Thiết lập ràng buộc FOREIGN KEY (khóa ngoại) cho cột MaKH trên table VayTrường thích hợp chế tạo ra bắt đầu table:Cách 1: tư tưởng thẳng Khi knhì báo cột, ko knhì báo constraint

CREATE TABLE Vay (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: Định nghĩa 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 );Trường phù hợp sửa đổi table:ALTER TABLE VayShowroom CONSTRAINT fk_makh FOREIGN KEY (MaKH) REFERENCES KhachHang(MaKH);5. Tạo ràng buộc UNIQUE (duy nhất) trên ngôi trường DienThoai vệ của Bảng KhachHangTrường hợp tạo bắt đầu table:Cách 1:

CREATE TABLE KhachHang (MaKH char(10) NOT NULL,HoTen nvarchar(50) NOT NULL,DiaChi nvarchar(50) NOT NULL,DienThoai phong varchar(50) UNIQUE,NgaySinc date);Cách 2:

CREATE TABLE KhachHang (MaKH char(10) NOT NULL,HoTen nvarchar(50) NOT NULL,DiaChi nvarchar(50) NOT NULL,DienThoách varchar(50), CONSTRAINT unique_dien_thoai UNIQUE (DienThoai)NgaySinch date);Trường vừa lòng sửa đổi table:ALTER TABLE KhachHangADD CONSTRAINT unique_dien_thoai UNIQUE (DienThoai);

Lưu ý:

Nên áp dụng Cách 2 vào nghỉ ngơi trên mình chỉ dẫn, hay chính là việc chúng ta nên thực hiện vẻ bên ngoài knhì báo hiện đang có đặt tên buộc ràng trải qua knhì báo bằng lệnh CONSTRAINT.Vì với biện pháp này các bạn sẽ thuận lợi xóa khỏi, sửa thay đổi, vứt kích hoạt, kích hoạt vị nó xác định qua thương hiệu của buộc ràng
*

ALTER TABLE NhanVien ADD CONSTRAINT check_ngay_vao_lam CHECK (NgayVaoLam > "1995-1-1");Tạo ràng buộc kiểm tra trên trường NgayHetHan buộc phải to hơn NgayVay của bảng VayALTER TABLE VayShowroom CONSTRAINT check_ngayhethan CHECK (NgayHetHan > NgayVay);Tạo buộc ràng khám nghiệm trên trường GiaTri>=0 của bảng TaiSanALTER TABLE TaiSanShowroom CONSTRAINT check_gia_tri CHECK (GiaTri > 0);Tạo ràng buộc chất vấn bên trên ngôi trường ThoiHan ở trong tầm 1 mang lại 36 mon của bảng VayALTER TABLE VayĐịa chỉ cửa hàng CONSTRAINT check_thoi_han CHECK (ThoiHan BETWEEN 1 AND 36);

Xóa vứt constraint

Cú pháp xóa bỏ:

ALTER TABLE tên table đựng ràng buộc>DROPhường CONSTRAINT thương hiệu ràng buộc mong mỏi xóa bỏ>Ví dụ: Xóa vứt buộc ràng check_ngay_vao_lam trong table NhanVien vẫn khai báo ở mục 6.

ALTER TABLE NhanVienDROP. CONSTRAINT check_ngay_vao_lam

Bỏ kích hoạt với kích hoạt constraint

thường thì bạn muốn quăng quật vấn đề check buộc ràng vào một số ngôi trường hợp mà lại lại không muốn xóa sổ đi ràng buộc vẫn khai báo. Trường phù hợp này chúng ta có thể chọn bản lĩnh quăng quật kích hoạt.Cú pháp bỏ kích hoạt:

ALTER TABLE tên table chứa ràng buộc>NOCHECK CONSTRAINT thương hiệu ràng buộc>Ví dụ: Vô hiệu hóa buộc ràng kiểm soát bên trên trường ThoiHan ở trong vòng 1 đến 36 mon của bảng Vay

ALTER TABLE VayNOCHECK CONSTRAINT check_ngayhethanTrường hợp hy vọng kích hoạt lại ràng buộc, chúng ta thực hiện cú pháp sau:

ALTER TABLE thương hiệu table đựng ràng buộc>WITH CHECK CHECK CONSTRAINT tên ràng buộc>Ví dụ: Vô hiệu hóa ràng buộc soát sổ trên trường ThoiHan nằm trong vòng 1 đến 36 mon của bảng Vay

ALTER TABLE VayWITH CHECK CHECK CONSTRAINT check_ngayhethan

Kết luận

Trên đó là số đông gì mình tổng đúng theo và trường đoản cú giới thiệu ví dụ minc họa mang lại từng phần. Hi vọng để giúp đỡ ích mang đến chúng ta trong quá trình sử dụng constraint trong câu lệnh sql.