Trong MySQL, ràng buộc UNIQUE được sử dụng để đảm bảo rằng mỗi giá trị trong cột (hoặc tập hợp các cột) là duy nhất trong bảng. Nó tương tự như ràng buộc PRIMARY KEY, nhưng khác biệt ở điểm là nó có thể chứa giá trị NULL (trừ khi được kết hợp với ràng buộc NOT NULL) và có thể có nhiều hơn một cột được đánh dấu là duy nhất.
Cú pháp để định nghĩa ràng buộc UNIQUE
Khi tạo bảng (CREATE TABLE):
CREATE TABLE table_name (
column1 datatype UNIQUE,
column2 datatype,
...
);
Ví dụ, trong bảng users, email được định nghĩa là duy nhất:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE
);
Thêm ràng buộc UNIQUE vào bảng đã tồn tại (ALTER TABLE):
ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column_name);
Ví dụ, để thêm ràng buộc UNIQUE vào cột username trong bảng users:
ALTER TABLE users
ADD CONSTRAINT uq_username UNIQUE (username);
Lợi ích của ràng buộc UNIQUE
Đảm bảo tính duy nhất: Ràng buộc UNIQUE đảm bảo rằng không có hai hàng nào trong bảng có cùng giá trị trong cột (hoặc tập hợp các cột) được xác định là duy nhất.
Tối ưu hóa truy xuất dữ liệu: Các chỉ mục UNIQUE giúp tăng tốc độ truy vấn dữ liệu và đảm bảo tính hiệu quả trong việc tìm kiếm dữ liệu.
Phù hợp khi cần duy nhất nhưng không phải là khóa chính: Trong trường hợp cần đảm bảo tính duy nhất nhưng không cần thiết phải là khóa chính, ràng buộc UNIQUE là lựa chọn lý tưởng.
Lưu ý khi sử dụng ràng buộc UNIQUE
Có thể chứa giá trị NULL: Mặc định, các ràng buộc UNIQUE trong MySQL cho phép cột có giá trị NULL. Nếu muốn ngăn chặn giá trị NULL, bạn có thể kết hợp với ràng buộc NOT NULL.
Có thể áp dụng cho nhiều cột: Ràng buộc UNIQUE có thể áp dụng cho một hoặc nhiều cột trong bảng.
Cần cẩn thận khi thêm hoặc sửa đổi dữ liệu: Việc thêm hoặc sửa đổi dữ liệu có thể bị từ chối nếu vi phạm ràng buộc UNIQUE.
Ràng buộc UNIQUE là một công cụ quan trọng trong thiết kế cơ sở dữ liệu để đảm bảo tính duy nhất của dữ liệu và tối ưu hóa hiệu suất của các truy vấn SQL trong MySQL.