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