hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • MySQL
Tìm Hiểu Ràng Buộc UNIQUE Trong MySQL

Tìm Hiểu Ràng Buộc UNIQUE Trong MySQL

  • 14-06-2025
  • trienkhaiweb
  • 0 Comments

Trong bài trước, chúng ta đã tìm hiểu về khóa chính (PRIMARY KEY) – một thành phần quan trọng dùng để xác định duy nhất từng dòng dữ liệu trong bảng. Tuy nhiên, bên cạnh khóa chính, MySQL còn cung cấp một ràng buộc khác cũng có tính duy nhất là UNIQUE.


Mục lục

  • 1. UNIQUE Là Gì?
    • ✅ Đặc điểm:
  • 2. So Sánh PRIMARY KEY vs UNIQUE
  • 3. Cách Tạo UNIQUE Trong MySQL
    • ✅ Cách 1: Tạo UNIQUE khi tạo bảng
    • ✅ Cách 2: Khai báo UNIQUE ở phần cuối
    • ✅ Cách 3: Dùng CONSTRAINT để đặt tên UNIQUE
  • 4. Thêm UNIQUE Sau Khi Đã Tạo Bảng
    • Dùng ALTER TABLE
    • Dùng CONSTRAINT đặt tên
  • 5. Xóa UNIQUE Trong MySQL
  • 6. Kết Luận

1. UNIQUE Là Gì?

UNIQUE là một ràng buộc (constraint) dùng để đảm bảo mỗi giá trị trong cột (hoặc tập cột) được đánh dấu là UNIQUE là không trùng lặp trong toàn bảng.

✅ Đặc điểm:

  • Đảm bảo không có hai record nào có giá trị giống nhau tại cột (hoặc tổ hợp cột) được chỉ định.
  • Có thể khai báo nhiều cột UNIQUE trong một bảng.
  • Về bản chất, UNIQUE là một loại index (chỉ mục), vì vậy nó cũng giúp tăng tốc truy vấn.
  • Cho phép chứa giá trị NULL (mỗi NULL được coi là một giá trị khác nhau).

2. So Sánh PRIMARY KEY vs UNIQUE

Tiêu chíPRIMARY KEYUNIQUE
Số lượng trong bảngChỉ duy nhất mộtCó thể có nhiều
Cho phép NULL❌ Không✅ Có (một hoặc nhiều NULL)
Mục đích chínhNhận diện duy nhất mỗi recordĐảm bảo không trùng ở một hoặc vài field
Tạo chỉ mục tự động✅ Có (tên là PRIMARY)✅ Có (tên là tên chỉ định hoặc auto)

3. Cách Tạo UNIQUE Trong MySQL

✅ Cách 1: Tạo UNIQUE khi tạo bảng

CREATE TABLE Users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(50) NOT NULL UNIQUE
);

✅ Cách 2: Khai báo UNIQUE ở phần cuối

CREATE TABLE Users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    UNIQUE (username),
    UNIQUE (email)
);

✅ Cách 3: Dùng CONSTRAINT để đặt tên UNIQUE

Việc đặt tên giúp bạn dễ quản lý hơn khi cần xóa hoặc chỉnh sửa:

CREATE TABLE Users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL,
    CONSTRAINT user_unique UNIQUE (username),
    CONSTRAINT email_unique UNIQUE (email)
);

4. Thêm UNIQUE Sau Khi Đã Tạo Bảng

Dùng ALTER TABLE

ALTER TABLE Users ADD UNIQUE(username);
ALTER TABLE Users ADD UNIQUE(email);

Dùng CONSTRAINT đặt tên

ALTER TABLE Users ADD CONSTRAINT user_unique UNIQUE (username);
ALTER TABLE Users ADD CONSTRAINT email_unique UNIQUE (email);

5. Xóa UNIQUE Trong MySQL

Để xóa một ràng buộc UNIQUE, bạn cần biết tên của index. Đây là lý do nên dùng CONSTRAINT để đặt tên ngay từ đầu.

ALTER TABLE Users DROP INDEX user_unique;

🔔 Lưu ý:

  • user_unique là tên chỉ mục (index name), không phải tên cột.
  • Nếu không đặt tên, MySQL sẽ tự động tạo tên theo định dạng như username_UNIQUE.

6. Kết Luận

Ràng buộc UNIQUE rất quan trọng trong các hệ thống đòi hỏi tính duy nhất trên một hoặc nhiều cột, ví dụ như email hoặc username trong bảng người dùng. Nó cũng giúp cải thiện hiệu suất truy vấn vì MySQL tự động tạo chỉ mục cho các cột UNIQUE.


👉 Ở bài tiếp theo, chúng ta sẽ tìm hiểu về AUTO_INCREMENT – cách thiết lập cột tự động tăng, thường áp dụng cho khóa chính (id) giúp đơn giản hóa việc thêm dữ liệu.


Nếu bạn cần mình biên tập lại toàn bộ các bài về DDL, PRIMARY KEY, UNIQUE, và AUTO_INCREMENT thành một tài liệu học tập thống nhất hoặc giáo trình PDF, cứ nói nhé!

Bài viết liên quan:

Tìm Hiểu Khóa Chính (Primary Key) Trong MySQL
Các câu lệnh DDL trong MySQL
Data Types (kiểu dữ liệu) trong MySQL
Storage Engines/table types (công cụ lưu trữ) trong MySQL
Khởi tạo và quản trị database trong MySQL
Phân loại các kiểu câu lệnh SQL trong MySQL
Cài đặt và sử dụng Mysql Server Mac Os

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Các lớp trừu tượng và Giao diện

Kế thừa và Đa hình

Tìm Hiểu Ràng Buộc UNIQUE Trong MySQL

Các câu lệnh DDL trong MySQL

Tìm Hiểu Khóa Chính (Primary Key) Trong MySQL

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×