Đề Xuất 5/2023 # Constraint (Ràng Buộc) Trong Sql Server # Top 5 Like | Sieuphampanorama.com

Đề Xuất 5/2023 # Constraint (Ràng Buộc) Trong Sql Server # Top 5 Like

Cập nhật nội dung chi tiết về Constraint (Ràng Buộc) Trong Sql Server mới nhất trên website Sieuphampanorama.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất.

1. CONSTRAINT trong SQL là gì?

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

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

2. Các RÀNG BUỘC có sẵn trong SQL Server

NOT NULL

Khi muốn dữ liệu không nhận giá trị NULL trong cột dữ liệu.

DEFAULT

Nếu các dữ liệu của cột không xác định hoặc không nhập sẽ được gán cho các giá trị mặc định trước đó đã setting.

UNIQUE

Đảm bảo dữ liệu không bị lặp lại với các dữ liệu khác.

PRIMARY KEY (Khóa chính)

Sử dụng cài đặt khóa chính trong bảng, xác định các dữ liệu phải là duy 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 cầu các cột phải NOT NULL.

FOREIGN KEY (Khóa ngoại)

Mỗi hàng/bản ghi được nhận diện duy nhất trong bất kỳ bảng nào.

CHECK

Đảm bảo các dữ liệu trong cột phải thỏa mãn điều kiện mà bạn đã gán.

INDEX

Lấy dữ liệu từ Database nhanh nhất

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

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

Không thể định trong VIEW

Bạn chỉ có thể tham chiếu các dữ liệu ở bảng đã khai báo ràng buộc. Còn lại không thể tham ở bảng khác, nếu muốn phải dùng Function để trích xuất dữ liệu.

Trong định nghĩa điều kiện không thể sử dụng các truy vấn con (Subquery)

2.2 Ví dụ cụ thể

Thuật toán quản lý Vay có thế chấp tài sản đơn giản thể hiện qua sơ đồ như sau:

Nếu tạo mới 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 giá trị mặc định là ngày hiện tại nếu ngày vay không thể xác định. Sử dụng function GETDATE() để lấy giá trị ngày hiện tại.

Nếu tạo mới 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

);

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 sử dụng lệnh này cho MaTaiSan trên 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 ví dụ được sử dụng trên bảng VAY cho cột MaKH

Tạo mới bảng

Cách 1: Không khai 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: 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 đổ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 UNIQUE (DienThoai)

NgaySinh date

);

Sửa đổi bảng:

ALTER TABLE KhachHang

ADD CONSTRAINT unique_dien_thoai UNIQUE (DienThoai);

Sử dụng lệnh Check constraint trong sql

ALTER TABLE NhanVien

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

ALTER TABLE Vay

ALTER TABLE TaiSan

Tao Constraint kiểm tra trên trường ThoiHan khoảng 1 đến 12 tháng của bảng Vay

ALTER TABLE Vay

ADD CONSTRAINT check_thoi_han CHECK (ThoiHan BETWEEN 1 AND 12);

3. Xóa RÀNG BUỘC trong SQL

Lệnh xóa bỏ

Ví dụ: Xóa bỏ kiểm tra trên trường ThoiHan từ 1-12 tháng gán ở trên

ALTER TABLE Vay

DROP CONSTRAINT check_thoi_han CHECK (ThoiHan BETWEEN 1 AND 12);

4. Bỏ kích hoạt và kích hoạt CONSTRAINT

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

Câu lệnh là:

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

ALTER TABLE Vay

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

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

ALTER TABLE Vay

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

Integrity constraint (ràng buộc toàn vẹn) chỉ nên sử dụng khi bạn muốn đảm bảo 100% sự chính xác và tính nhất quán trong các dữ liệu của Cơ sở dữ liệu.

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

Tìm Hiểu Về Ràng Buộc(Constraint) Là Gì? Và Not Null, Unique Constraint Trong Sql

Bài này cafedev chia sẻ cho ace về cách sử dụng và hiểu về Constraint, NOT NULL Constraint, UNIQUE Constraint là gì? khi thao tác với cơ sở dữ liệu.

Hiện tại trong SQL có khá nhiều loại constraint khác nhau, sau đây ta sẽ tìm hiểu chi tiết từng loại.

1. Constraint là gì và cách tạo nó?

Constraint có nghĩa là ràng buộc cái gì đó, vậy Constraint là một hoặc nhiều ràng buộc SQL được sử dụng để chỉ định các quy tắc cho dữ liệu trong bảng.

Tạo Constraint

Các ràng buộc(Constraint) có thể được chỉ định khi bảng được tạo bằng câu lệnh CREATE TABLE hoặc sau khi bảng được tạo bằng câu lệnh ALTER TABLE.

Cú pháp

CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, column3 datatype constraint, .... );

Các loại constraint

Các ràng buộc(constraint) SQL được sử dụng để chỉ định các quy tắc cho dữ liệu trong bảng.

SQL được sử dụng để chỉ định các quy tắc cho dữ liệu trong bảng.

Các ràng buộc được sử dụng để giới hạn loại dữ liệu có thể đi vào bảng. Điều này đảm bảo tính chính xác và độ tin cậy của dữ liệu trong bảng. Nếu có bất kỳ vi phạm nào giữa ràng buộc và hành động dữ liệu, hành động đó sẽ bị hủy bỏ.

Các ràng buộc sau thường được sử dụng trong SQL:

NOT NULL – Đảm bảo rằng một cột không thể có giá trị NULL

UNIQUE – Đảm bảo rằng tất cả các giá trị trong một cột là khác nhau

PRIMARY KEY – Sự kết hợp giữa KHÔNG ĐẦY ĐỦ và ĐỘC ĐÁO. Xác định duy nhất từng hàng trong bảng

FOREIGN KEY – Xác định duy nhất một hàng / bản ghi trong bảng khác

CHECK – Đảm bảo rằng tất cả các giá trị trong một cột thỏa mãn một điều kiện cụ thể

DEFAULT – Đặt giá trị mặc định cho một cột khi không có giá trị nào được chỉ định

INDEX – Được sử dụng để tạo và truy xuất dữ liệu từ cơ sở dữ liệu rất nhanh chóng

2. Ràng buộc NOT NULL

Theo mặc định, một cột có thể chứa các giá trị NULL.

Ràng buộc NOT NULL thực thi cột KHÔNG chấp nhận giá trị NULL.

Điều này buộc một trường luôn chứa giá trị, có nghĩa là bạn không thể chèn bản ghi mới hoặc cập nhật bản ghi mà không thêm giá trị vào trường này.

Ví dụ:

SQL NOT NULL trong CREATE TABLE

SQL sau đảm bảo rằng các cột “ID”, “LastName” và “FirstName” sẽ KHÔNG chấp nhận giá trị NULL khi bảng “Persons” được tạo:

/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: cafedevn@gmail.com Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255) NOT NULL, Age int );

SQL NOT NULL trong ALTER TABLE

Để tạo ràng buộc KHÔNG ĐẦY ĐỦ trên cột “Age” khi bảng “Persons” đã được tạo, hãy sử dụng SQL sau:

ALTER TABLE Persons MODIFY Age int NOT NULL;

3. Ràng buộc duy nhất(UNIQUE Constraint)

Ràng buộc UNIQUE đảm bảo rằng tất cả các giá trị trong một cột là khác nhau.

Cả ràng buộc UNIQUE và PRIMARY KEY đều đảm bảo tính duy nhất cho một cột hoặc tập hợp các cột.

Ràng buộc PRIMARY KEY tự động có một ràng buộc UNIQUE constraint.

Tuy nhiên, bạn có thể có nhiều ràng buộc DUY NHẤT(UNIQUE constraints) trên mỗi bảng, nhưng chỉ có một ràng buộc KEY CHÍNH(PRIMARY KEY) cho mỗi bảng.

Ví dụ:

SQL UNIQUE Constraint trong CREATE TABLE

SQL sau tạo ràng buộc DUY NHẤT(UNIQUE) trên cột “ID” khi bảng “Persons” được tạo:

SQL Server / Oracle / MS Access:

/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: cafedevn@gmail.com Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ CREATE TABLE Persons ( ID int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );

MySQL:

CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, UNIQUE (ID) );

Để đặt tên cho một ràng buộc UNIQUE và để xác định một ràng buộc UNIQUE trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT UC_Person UNIQUE (ID,LastName) );

SQL UNIQUE Constraint trong ALTER TABLE

Để tạo ràng buộc DUY NHẤT trên cột “ID” khi bảng đã được tạo, hãy sử dụng SQL sau:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD UNIQUE (ID);

Để đặt tên cho một ràng buộc UNIQUE và để xác định một ràng buộc UNIQUE trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);

DROP a UNIQUE Constraint – Xoá một ràng buộc

Để loại bỏ một ràng buộc UNIQUE, hãy sử dụng SQL sau:

MySQL:

ALTER TABLE Persons DROP INDEX UC_Person;

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT UC_Person;

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Định Nghĩa Economic Constraint / Ràng Buộc Kinh Tế Là Gì?

Khái niệm thuật ngữ

Rào cản đạt đến mục tiêu chung (như tăng trưởng kinh tế) trong một thời kỳ nào đó. Thí dụ, nguồn vốn vật chất (K) trong thời gian dài được lập luận như một ràng buộc quan trọng đối với tăng trưởng của các nước LDCs

Khóa Chính Primary Key Trong Sql Server

Cùng học cách tạo, xóa, vô hiệu hóa hoặc kích hoạt khóa chính trong SQL Server với cú pháp và các ví dụ.

Khóa chính trong SQL Server là gì?

Trong SQL Server (Transact-SQL), khóa chính là một trường hoặc kết hợp nhiều trường và được xác định là một bản ghi duy nhất. Không trường nào trong khóa chính được chứa giá trị NULL. Một bảng chỉ có duy nhất một khóa chính. Khóa chính có thể được định nghĩa bằng lệnh CREATE TABLE hoặc lệnh ALTER TABLE.

Tạo khóa chính – bằng lệnh CREATE TABLE

hoặc

Ví dụ tạo khóa chính bằng lệnh CREATE TABLE

CREATE TABLE nhanvien ( nhanvien_id INT PRIMARY KEY, ho VARCHAR(50) NOT NULL, ten VARCHAR(50), NOT NULL, luong MONEY );

Ở ví dụ này, khóa chính cho bảng nhanvien được tạo thành từ 1 trường là nhanvien_id. Ngoài ra có thể tạo khóa chính như sau:

CREATE TABLE nhanvien ( nhanvien_id INT, ho VARCHAR(50) NOT NULL, ten VARCHAR(50), NOT NULL, luong MONEY CONSTRAINT nhanvien_pk PRIMARY KEY (nhanvien_id) );

Bây giờ là ví dụ tạo khóa chính có nhiều hơn 1 trường trong SQL Server.

CREATE TABLE nhanvien ( ho VARCHAR(50) NOT NULL, ten VARCHAR(50), NOT NULL, luong MONEY CONSTRAINT nhanvien_pk PRIMARY KEY (ho, ten) );

Ở ví dụ này, chúng ta đã tạo khóa chính tạo thành từ 2 cột là ho và ten. 2 trường này sẽ xác định một cách duy nhất cho bản ghi trong bảng nhanvien.

Tạo khóa chính – bằng lệnh ALTER TABLE

Chỉ có thể tạo khóa chính bằng lệnh ALTER TABLE ở các cột đã được định nghĩa là NOT NULL. Nếu cột cho phép giá trị NULL, sẽ không thể thêm khóa chính nếu không xóa hoặc tạo lại bảng.

Cú pháp tạo khóa chính bằng lệnh ALTER TABLE

ALTER TABLE ten_bang ADD CONSTRAINT ten_rang_buoc PRIMARY KEY (cot1, cot2, ... cot_n);

Ví dụ tạo khóa chính bằng lệnh ALTER TABLE

ALTER TABLE nhanvien ADD CONSTRAINT nhanvien_pk PRIMARY KEY (nhanvien_id);

Trong ví dụ này, ta tạo khóa chính nhanvien_pk cho bảng nhanvien có sẵn, gồm trường nhanvien_id. Lưu ý là trường nhanvien_id phải được định nghĩa là NOT NULL trước đó, nếu không sẽ phải xóa và tạo lại bảng và định nghĩa trường này là NOT NULL.

Có thể tạo khóa chính với nhiều hơn 1 trường như trong ví dụ sau.

ALTER TABLE nhanvien ADD CONSTRAINT nhanvien_pk PRIMARY KEY (ho, ten);

Khóa chính cho bảng nhanvien gồm 2 trường là họ và tên. Cả 2 phải được định nghĩa là NOT NULL.

Xóa khóa chính trong SQL Server

Cú pháp xóa khóa chính bằng lệnh ALTER TABLE

ALTER TABLE ten_bang DROP CONSTRAINT ten_rang_buoc;

Ví dụ xóa khóa chính bằng lệnh ALTER TABLE

ALTER TABLE nhanvien DROP CONSTRAINT nhanvien_pk;

Ví dụ trên xóa khóa chính nhanvien_pk trong bảng nhanvien.

Vô hiệu hóa khóa chính trong SQL Server

Cú pháp vô hiệu hóa khóa chính bằng lệnh ALTER INDEX

ALTER INDEX ten_rang_buoc ON ten_bang DISABLE;

Ví dụ vô hiệu hóa khóa chính bằng lệnh ALTER INDEX

ALTER INDEX nhanvien_pk ON nhanvien DISABLE;

Ví dụ trên vô hiệu hóa khóa chính nhanvien_pk trong bảng nhanvien.

Kích hoạt khóa chính trong SQL Server

Cú pháp kích hoạt khóa chính bằng lệnh ALTER INDEX

ALTER INDEX ten_rang_buoc ON ten_bang REBUILD;

Ví dụ kích hoạt khóa chính bằng lệnh ALTER INDEX

ALTER INDEX nhanvien_pk ON nhanvien REBUILD;

Ví dụ trên kích hoạt lại khóa chính nhanvien_pk của bảng nhanvien.

Bài trước: Lệnh CREATE TABLE trong SQL Server

Bài sau: Lệnh Alter Table trong SQL Server

Bạn đang đọc nội dung bài viết Constraint (Ràng Buộc) Trong Sql Server trên website Sieuphampanorama.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!