Thứ Tư, Tháng Bảy 6, 2022
HomeWikiTạo Unique trong MySQL - DROP Unique - Freetuts

Tạo Unique trong MySQL – DROP Unique – Freetuts

Trong bài tạo khóa chính Primary Key mình đã nói rằng trong một bảng sẽ tồn tại một khóa chính (có thể có nhiều fields) và giá trị của nó sẽ là duy nhất, nghĩa là dữ liệu sẽ không được trùng lặp. Vậy thì UNIQUE cũng có tính chất tương tự như vậy, tức là nếu bạn xác định một field nào đó là UNIQUE dữ liệu của mỗi record không được trùng lặp nhau.

test php

banquyen png

Bài viết này được đăng tại

freetuts.net

, không được copy dưới mọi hình thức.

Vậy sự khác nhau giữa Primary Key và Unique là gì? Để trả lời ta sẽ tìm hiểu cú pháp tạo Unique trong MySQL đã nhé.

1. Unique trong MySQL

UNIQUE thực chất là một index KEY nên khi bạn thiết lập một field nào đó là UNIQUE thì việc truy vấn dữ liệu trên field đó sẽ nhanh hơn. Nó được dùng trong trường hợp bạn muốn tạo thêm một field có giá trị là duy nhất.

Ví dụ trong bảng Users gồm các fields như sau: Users(id, username, email) thì với id ta sẽ chọn làm khóa chính. Nhưng mà tôi muốn email và username của người dùng phải là duy nhất, nghĩa là người dùng không được sử dụng một email hoặc username để đăng ký nhiều tài khoản. Để giải quyết thì ta sẽ thiết lập cho hai fields này là UNIQUE.

Bài viết này được đăng tại [ không tính tiền tuts. net ]

Như vậy sự khác biệt giữa UNIQUEPrimary Key là:

  •  Primary Key có cấp cao hơn UNIQUE, nó  thường dùng để phân biệt giữa các record.
  • Trong mỗi bảng chỉ có có một Primary Key, còn UNIQUE thì có thể có nhiều

2. Tạo UNIQUE trong MySQL

Để tạo UNIQUE ta có hai cách, cách thứ nhất là tạo trực tiếp trong lệnh CREATE TABLE và cách thứ hai là sử dụng lệnh ALTER TABLE.

Tạo trong lệnh tạo bảng

Chúng ta sẽ thêm từ khóa UNIQUE vào field mà ban muốn thiết lập nó là UNIQUE.

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

Hoặc ta hoàn toàn có thể thêm nó ở dưới list những fields ( giống Primary Key ) .

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

Sử dụng Alter Table để tạo

Trong trường hợp này chúng ta sẽ tạo bảng trước, sau đó sử dụng lệnh Alter Table để thêm UNIQUE.

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

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

Sử dụng CONSTRAINT để tạo tên cho UNIQUE

Cách này khuyến khích sử dụng vì mỗi index chúng ta nên đặt cho nó một cái tên để sau này muốn thực hiện thao tác delete unique thì sẽ dựa vào tên constraint đó.  Ví dụ:

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)
);

Hoặc:

ALTER TABLE Users ADD CONSTRAINT user_unique UNIQUE (username)

3. Xóa (Drop) Unique trong MySQL

Sau khi tạo UNIQUE xong nếu bạn muốn bỏ nó đi thì sẽ sử dụng lệnh ALTER TABLE kết hợp với DROP. Tuy nhiên để xóa UNIQE nào thì chúng ta phải biết được tên của nó, vì vậy ta nên dùng CONSTRAINT để tạo unique nhé. Sau đây là ví dụ xóa UNIQUE.

ALTER TABLE Users DROP INDEX user_unique

Các bạn quan tâm chữ thường chính là những chỗ bạn sẽ đổi còn chữ hoa là những keyword nên không được đổi nhé .

4. Lời kết

Bài này chủ yếu hướng dẫn cách tạo UNIQUE trong MYSQL và phân biệt nó với Primary Key, đây cũng là một dạng chỉ mục đóng vai trò rất quan trọng trong việc tối ưu hóa truy vấn. Bài này mình dừng ở đây, bài tiếp theo mình sẽ trình bày về thiết lập tăng tự động cho khóa chính (auto increment).

Source: https://entechgadget.com
Category: Wiki

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Bài viết hay nhất

DANH MỤC WEBSITE