Ngôn ngữ SQL - Khóa duy nhất

Khóa duy nhất(Unique Key) trong SQL


Khóa duy nhất là một tập hợp của một hoặc nhiều trường / cột của bảng xác định duy nhất một bản ghi trong bảng cơ sở dữ liệu.

Bạn có thể nói rằng nó giống như khóa chính nhưng nó chỉ có thể chấp nhận một giá trị null và nó không thể có các giá trị trùng lặp.

Cả khóa duy nhất và khóa chính đều đảm bảo tính duy nhất cho một cột hoặc một tập hợp các cột.

Có một ràng buộc khóa duy nhất được xác định tự động trong một ràng buộc khóa chính.

Có thể có nhiều ràng buộc khóa duy nhất cho một bảng, nhưng chỉ có một ràng buộc khóa chính cho một bảng.

Dùng câu lệnh SQL để tạo ràng buộc Unique key

Nếu bạn muốn tạo một ràng buộc UNIQUE KEY  trên cột "S_Id" khi bảng "STUDENTS" được tạo, hãy sử dụng cú pháp SQL sau:

SQL Server / Oracle / MS Access:

CREATE TABLE students  
(  
S_Id int NOT NULL UNIQUE,  
LastName varchar (255) NOT NULL,  
FirstName varchar (255),  
City varchar (255)  
)  

MySQL:

CREATE TABLE students  
CREATE TABLE students  
(  
S_Id int NOT NULL,  
LastName varchar (255) NOT NULL,  
FirstName varchar (255),  
City varchar (255),  
UNIQUE (S_Id)  
)  

 

MySQL / SQL Server / Oracle / MS Access:

 CREATE TABLE students  
(  
S_Id int NOT NULL,  
LastName varchar (255) NOT NULL,  
FirstName varchar (255),  
City varchar (255),  
CONSTRAINT uc_studentId UNIQUE (S_Id, LastName)  
)  

Sử dụng câu lệnh ALTER TABLE để tạo UNIQUE KEY

Nếu bạn muốn tạo một ràng buộc duy nhất trên cột "S_Id" khi bảng đã được tạo, bạn nên sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE students  
ADD UNIQUE (S_Id)  

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE students  
ADD CONSTRAINT uc_StudentId UNIQUE  (S_Id, LastName)  

Xóa ràng buộc khóa UNIQUE KEY

Nếu bạn muốn loại bỏ một ràng buộc UNIQUE KEY, hãy sử dụng cú pháp SQL sau:

MySQL:

ALTER TABLE students  
DROP INDEX uc_studentID  

SQL Server / Oracle / MS Access:

ALTER TABLE students  
DROP CONSTRAINT uc_studentID