Ràng buộc UNIQUE được sử dụng để đảm bảo dữ liệu trong một cột là khác nhau.
1. Sử dụng ràng buộc UNIQUE cho một cột:
CREATE TABLE Tên_bảng
(
Tên_cột_1 kiểu_dữ_liệu UNIQUE,
Tên_cột_2 kiểu_dữ_liệu,
.....................
Tên_cột_n kiểu_dữ_liệu
)
Ví dụ 1: tạo UNIQUE cho cột ID trong bảng tblSinhVien
CREATE TABLE tblSinhVien
(
ID INT NOT NULL UNIQUE,
MaSinhVien NVARCHAR(20) NOT NULL,
TenSinhVien NVARCHAR(50) NOT NULL,
GioiTinh BIT
)
Trong đó, cột ID có ràng buộc UNIQUE. Nếu nhập ID trùng nhau, sẽ xuất hiện lỗi như sau:
Trong hình trên, khi bạn thêm mới 2 bản ghi có trùng ID=1, sẽ hiển thị thông báo lỗi, bởi vì cột ID ta xét UNIQUE, nên không cho phép giá trị trùng nhau.
2. Sử dụng ràng buộc UNIQUE trên nhiều cột:
CREATE TABLE Tên_bảng
(
Tên_cột_1 kiểu_dữ_liệu,
Tên_cột_2 kiểu_dữ_liệu,
................
Tên_cột_n kiểu_dữ_liệu,
CONSTRAINT UC_Tên_bảng UNIQUE(tên_cột_1, tên_cột_2)
)
Ví dụ 2: Tạo UNIQUE cho cột ID, MaSinhVien trong bảng tblSinhVien
CREATE TABLE tblSinhVien
(
ID INT NOT NULL,
MaSinhVien NVARCHAR(20) NOT NULL,
TenSinhVien NVARCHAR(50) NOT NULL,
GioiTinh BIT,
CONSTRAINT UC_tblSinhVien UNIQUE(ID,MaSinhVien)
)
Thêm hai sinh viên có ID = 1 trùng nhau, nhưng mã sinh viên khác nhau, sẽ không xuất hiện lỗi. Nhưng nếu ID và MaSinhVien trùng nhau sẽ xuất hiện lỗi cảnh báo UNIQUE
3. Thêm ràng buộc UNIQUE cho một cột hoặc nhiều cột trên bảng có sẵn
3.1. Thêm UNIQUE cho 1 cột:
ALTER TABLE Tên_bảng
ADD UNIQUE(Tên_Cột)
3.2. Thêm UNIQUE cho nhiều cột:
ALTER TABLE Tên_bảng
ADD CONSTRAINT UC_tên_bảng UNIQUE(tên_cột_1, tên_cột_2)
4. Xóa ràng buộc UNIQUE trên bảng
ALTER TABLE Tên_bảng
DROP CONSTRAINT UC_tên_bảng
Ví dụ 3: Xóa ràng buộc UNIQUE đã tạo ở ví dụ 2
ALTER TABLE tblSinhVien
DROP UC_tblSinhVien
1. Sử dụng ràng buộc UNIQUE cho một cột:
CREATE TABLE Tên_bảng
(
Tên_cột_1 kiểu_dữ_liệu UNIQUE,
Tên_cột_2 kiểu_dữ_liệu,
.....................
Tên_cột_n kiểu_dữ_liệu
)
Ví dụ 1: tạo UNIQUE cho cột ID trong bảng tblSinhVien
CREATE TABLE tblSinhVien
(
ID INT NOT NULL UNIQUE,
MaSinhVien NVARCHAR(20) NOT NULL,
TenSinhVien NVARCHAR(50) NOT NULL,
GioiTinh BIT
)
Trong đó, cột ID có ràng buộc UNIQUE. Nếu nhập ID trùng nhau, sẽ xuất hiện lỗi như sau:
Hình 1. Sử dụng ràng buộc UNIQUE trong bảng tblSinhVien
Trong hình trên, khi bạn thêm mới 2 bản ghi có trùng ID=1, sẽ hiển thị thông báo lỗi, bởi vì cột ID ta xét UNIQUE, nên không cho phép giá trị trùng nhau.
2. Sử dụng ràng buộc UNIQUE trên nhiều cột:
CREATE TABLE Tên_bảng
(
Tên_cột_1 kiểu_dữ_liệu,
Tên_cột_2 kiểu_dữ_liệu,
................
Tên_cột_n kiểu_dữ_liệu,
CONSTRAINT UC_Tên_bảng UNIQUE(tên_cột_1, tên_cột_2)
)
Ví dụ 2: Tạo UNIQUE cho cột ID, MaSinhVien trong bảng tblSinhVien
CREATE TABLE tblSinhVien
(
ID INT NOT NULL,
MaSinhVien NVARCHAR(20) NOT NULL,
TenSinhVien NVARCHAR(50) NOT NULL,
GioiTinh BIT,
CONSTRAINT UC_tblSinhVien UNIQUE(ID,MaSinhVien)
)
Thêm hai sinh viên có ID = 1 trùng nhau, nhưng mã sinh viên khác nhau, sẽ không xuất hiện lỗi. Nhưng nếu ID và MaSinhVien trùng nhau sẽ xuất hiện lỗi cảnh báo UNIQUE
Hình 2. Thêm dữ liệu không vi phạm ràng buộc UNIQUE
Hình 3. Thêm dữ liệu vi phạm ràng buộc UNIQUE
3. Thêm ràng buộc UNIQUE cho một cột hoặc nhiều cột trên bảng có sẵn
3.1. Thêm UNIQUE cho 1 cột:
ALTER TABLE Tên_bảng
ADD UNIQUE(Tên_Cột)
3.2. Thêm UNIQUE cho nhiều cột:
ALTER TABLE Tên_bảng
ADD CONSTRAINT UC_tên_bảng UNIQUE(tên_cột_1, tên_cột_2)
4. Xóa ràng buộc UNIQUE trên bảng
ALTER TABLE Tên_bảng
DROP CONSTRAINT UC_tên_bảng
Ví dụ 3: Xóa ràng buộc UNIQUE đã tạo ở ví dụ 2
ALTER TABLE tblSinhVien
DROP UC_tblSinhVien
Danh mục:
SQL Server
Xem chi tiết