Constraint sql là gì

Bài viết này mình đã phân tách đã một số trong những kiến thức về phong thái 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 đông phép tắc được vận dụng bên trên các cột dữ liệu, trong bảng. Được sử dụng để kiểm soát tính hợp lệ của dữ liệu vào, đảm bảo an toàn tính đúng chuẩn, tính trọn vẹn của dữ liệu.

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

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

Xem thêm: Tại Sao Vô Wifi Không Được, 10 Cách Khắc Phục Lỗi Kết Nối Wifi Trên Iphone

FOREIGN KEY (Khóa ngoại)Dùng để thiết lập khóa nước ngoài trong bảng, tđam mê chiếu mang đến bảng không giống trải qua giá trị của cột được link. Giá trị của cột được link nên là độc nhất vô nhị vào bảng kia.
CHECKBảo đảm tất cả giá trị trong cột thỏa mãn nhu cầu ĐK nào đó. Đây là hiệ tượng thực hiện thông dụng nhằm chất vấn tính vừa lòng lệ của dữ liệu (validate data)

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

Không thể quan niệm trong VIEWCác điều kiện tùy chỉnh thiết lập bắt buộc tsay mê chiếu mang lại cột trong thuộc 1 bảng dùng làm khai báo ràng buộc, tất yêu tyêu thích chiếu tới những cột sống bảng không giống. Trường vừa lòng mong muốn tsi mê chiếu cho bảng không giống thì có thể dùng Function nhằm trích xuất dữ liệu.Không thể sử dụng subquery (truy vấn vấn con) vào tư tưởng điều kiệnChúng ta rất có thể knhị báo buộc ràng vào câu lệnh CREATE TABLE (sinh sản bắt đầu bảng) hoặc ALTER TABLE (Sửa thay đổi bảng)

lấy ví dụ vắt thể

Cho bài bác tân oán cai quản Vay có thế chấp vay vốn gia sản đơn giản và dễ dàng biểu lộ qua sơ thiết bị nút đồ dùng lý nlỗi sau:

*

1. Thiết lập ràng buộc NOT NULL trên cột MaKH của bảng KhachHangTrường phù hợp tạo mới table:

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

CREATE TABLE KhachHang (MaKH char(10) NOT NULL,HoTen nvarchar(50) NOT NULL,DiaChi nvarchar(50) NOT NULL,DienThoai vệ 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 vệ UNIQUE (DienThoai)NgaySinch date);Trường hợp sửa thay đổi table:ALTER TABLE KhachHangShowroom CONSTRAINT unique_dien_thoai phong UNIQUE (DienThoai);

Lưu ý:

Nên thực hiện Cách 2 trong ngơi nghỉ trên mình chỉ dẫn, xuất xắc đó là vấn đề bọn họ đề xuất sử dụng phong cách khai báo hiện có đánh tên buộc ràng thông qua khai báo bởi lệnh CONSTRAINT.Vì cùng với giải pháp này bạn sẽ tiện lợi xóa bỏ, sửa đổi, vứt kích hoạt, kích hoạt vị nó khẳng đị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 buộc ràng check trên ngôi trường NgayHetHan phải to hơn NgayVay của bảng VayALTER TABLE VayĐịa Chỉ CONSTRAINT check_ngayhethan CHECK (NgayHetHan > NgayVay);Tạo buộc ràng soát sổ trên trường GiaTri>=0 của bảng TaiSanALTER TABLE TaiSanĐịa Chỉ CONSTRAINT check_gia_tri CHECK (GiaTri > 0);Tạo ràng buộc kiểm tra bên trên trường ThoiHan ở trong khoảng 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 quăng quật constraint

Cú pháp xóa bỏ:

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

ALTER TABLE NhanVienDROP CONSTRAINT check_ngay_vao_lam

Bỏ kích hoạt cùng kích hoạt constraint

Thông thường bạn muốn vứt Việc check buộc ràng trong một số trong những trường phù hợp nhưng mà lại không thích xóa khỏi đi buộc ràng đang knhì báo. Trường đúng theo này chúng ta cũng có thể chọn bản lĩnh bỏ kích hoạt.

Xem thêm: Trị Tàn Nhang Bằng Laser Ở Đâu Tốt, Điều Trị Nám Ở Đâu Tốt Nhất

Cú pháp vứt kích hoạt:

ALTER TABLE thương hiệu 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 chất vấn trên ngôi trường ThoiHan ở trong vòng 1 mang đến 36 tháng của bảng Vay

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

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

ALTER TABLE VayWITH CHECK CHECK CONSTRAINT check_ngayhethan

Kết luận

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


Chuyên mục: Hỏi Đáp