Giá trị Unique trong SQL

Bởi Kiên Smart Data
0 Nhận xét
Giá trị Unique trong SQL

Unique là là một loại giá trị mà bạn sẽ rất hay gặp khi làm việc với SQL. Bài viết này hãy cùng SmartData đi tìm hiểu giá trị Unique trong SQL là gì và chúng có ý nghĩa như thế nào nhé.

Ràng buộc UNIQUE trong SQL

UNIQUE là ràng buộc trên giá trị duy nhất trên column, có nghĩa là các dòng dữ liệu không được có giá trị trùng nhau ở column đó. Ràng buộc này giống như khóa chính vậy, vì bản chất nó cũng là một khóa, tuy nhiên khác nhau ở chỗ ràng buộc UNIQUE sẽ chỉ chấp nhận thêm 1 giá trị NULL và nó không thể trùng lặp.

Ví dụ: trong bảng NHANVIEN sẽ có MANHANVIEN là khóa chính, và cột CCCD sẽ là UNIQUE. Về mặt logic bạn cũng có thể lấy CCCD là khoa chính nhưng như vậy sẽ không hay lắm cho việc phát triển về sau.

Tạo ràng buộc UNIQUE

  • Tạo ràng buộc UNIQUE khi tạo bảng:
CREATE TABLE persons(     person_id INT AUTO_INCREMENT PRIMARY KEY,     first_name VARCHAR(255) NOT NULL,     last_name VARCHAR(255) NOT NULL,     email VARCHAR(255),     UNIQUE(email) );
  • Tạo ràng buộc UNIQUE sau khi tạo bảng:
ALTER TABLE persons ADD CONSTRAINT unique_email UNIQUE (email);

Ta thực hiện các câu lệnh sau và nhận kết quả

INSERT INTO persons(first_name, last_name, email) VALUES('Nguyen','Nghiep', 'nghiepnv@gmail.com');

Lệnh 1 vẫn hoạt động và cho ta kết quả:

Ta thực hiện tiếp lệnh 2:

INSERT INTO persons(first_name, last_name, email) VALUES('Nguyen1','Nghiep1', 'nghiepnv@gamil.com');

Lệnh 2 bị lỗi giá trị email bị trùng như sau

Lỗi trùng nhau khi thêm bản ghi có giá trị được đánh dấu Unique
Lỗi trùng nhau khi thêm bản ghi có giá trị được đánh dấu Unique
  • Ngoài ra chúng ta có thể tạo UNIQUE trên nhiều column với cú pháp
CREATE TABLE table_name (     key_column data_type PRIMARY KEY,     column1 data_type,     column2 data_type,     column3 data_type,     ...,     UNIQUE (column1,column2) );

Ví dụ tạo UNIQUE cho 2 column person_id và skill_id

CREATE TABLE hr.person_skills (     id INT IDENTITY PRIMARY KEY,     person_id int,     skill_id int,     updated_at DATETIME,     UNIQUE (person_id, skill_id) );

Tổng kết

Bài viết trên SmartData đã giới thiệu với các bạn về giá trị Unique trong SQL

Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData

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

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data