hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • 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
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • 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 Khóa Chính (Primary Key) Trong MySQL

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

  • 14-06-2025
  • trienkhaiweb
  • 0 Comments

Dưới đây là phiên bản biên tập lại của bạn, được chuyển thành một bài viết hướng dẫn chi tiết về khóa chính (Primary Key) trong MySQL, súc tích, rõ ràng và chuẩn mực để dễ dùng cho học tập hoặc chia sẻ:


Mục lục

  • Tìm Hiểu Khóa Chính (Primary Key) Trong MySQL
    • 1. Đặc Điểm Của Khóa Chính
    • 2. Cách Tạo Khóa Chính Trong MySQL
      • Cách 1: Tạo khóa chính khi tạo bảng
      • Cách 2: Tạo khóa chính gồm nhiều cột (Composite Primary Key)
      • Cách 3: Tạo khóa chính bằng câu lệnh ALTER TABLE
      • Cách 4: Tạo khóa chính có tên bằng CONSTRAINT
    • 3. Xóa Khóa Chính (DROP PRIMARY KEY)
    • 4. Kết Luận

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

Trong thiết kế cơ sở dữ liệu, khóa chính (Primary Key) đóng vai trò quan trọng giúp phân biệt duy nhất mỗi dòng dữ liệu (record) trong một bảng (table). Khóa chính thường được chọn là một trường số (INT, BIGINT, …) có giá trị duy nhất và thường được thiết lập để tự động tăng (AUTO_INCREMENT).


1. Đặc Điểm Của Khóa Chính

Khi xây dựng bảng như SINHVIEN, chúng ta không thể dùng tên sinh viên để phân biệt vì có thể bị trùng. Do đó, cần thêm một trường như MaSV để làm khóa chính. Một khóa chính trong MySQL có các đặc điểm sau:

  • Duy nhất: Mỗi record phải có giá trị khóa chính duy nhất.
  • Không được NULL: Trường khóa chính luôn phải có giá trị.
  • Chỉ tồn tại một khóa chính duy nhất trong mỗi bảng, nhưng có thể gồm nhiều cột (composite key).
  • Thường là kiểu số (INT, BIGINT, …) để tăng tốc độ truy vấn.
  • Khi được khai báo, MySQL sẽ tạo một chỉ mục (index) đặc biệt có tên là PRIMARY.

2. Cách Tạo Khóa Chính Trong MySQL

Cách 1: Tạo khóa chính khi tạo bảng

Ví dụ 1 – Đặt PRIMARY KEY trực tiếp sau cột:

CREATE TABLE users (
    id INT(10) UNSIGNED NOT NULL PRIMARY KEY,
    email VARCHAR(70) NOT NULL
) ENGINE = InnoDB;

Ví dụ 2 – Đặt PRIMARY KEY() ở cuối danh sách cột:

CREATE TABLE users (
    id INT(10) UNSIGNED NOT NULL,
    email VARCHAR(70) NOT NULL,
    PRIMARY KEY(id)
) ENGINE = InnoDB;

Cách 2: Tạo khóa chính gồm nhiều cột (Composite Primary Key)

CREATE TABLE users (
    id INT(10) UNSIGNED NOT NULL,
    email VARCHAR(70) NOT NULL,
    PRIMARY KEY(id, email)
) ENGINE = InnoDB;

Cách 3: Tạo khóa chính bằng câu lệnh ALTER TABLE

Khi đã tạo bảng, bạn vẫn có thể thêm khóa chính sau:

CREATE TABLE users (
    id INT(10) UNSIGNED NOT NULL,
    email VARCHAR(70) NOT NULL
) ENGINE = InnoDB;

ALTER TABLE users ADD PRIMARY KEY(id);

Cách 4: Tạo khóa chính có tên bằng CONSTRAINT

Khai báo tên khóa chính giúp dễ quản lý sau này (ví dụ khi cần sửa hoặc xóa khóa chính):

CREATE TABLE users (
    id INT(10) UNSIGNED NOT NULL,
    email VARCHAR(70) NOT NULL,
    CONSTRAINT pk_user PRIMARY KEY(id)
) ENGINE = InnoDB;

Hoặc:

ALTER TABLE users ADD CONSTRAINT pk_user PRIMARY KEY (id);

3. Xóa Khóa Chính (DROP PRIMARY KEY)

Để xóa khóa chính khỏi bảng:

ALTER TABLE users DROP PRIMARY KEY;

⚠️ Lưu ý: Nếu khóa chính đang được tham chiếu bởi khóa ngoại (foreign key) từ bảng khác, bạn cần xóa ràng buộc đó trước.


4. Kết Luận

Khóa chính là thành phần cốt lõi trong thiết kế CSDL, giúp đảm bảo tính toàn vẹn và tối ưu hóa hiệu suất truy vấn. MySQL cung cấp nhiều cách để tạo và quản lý khóa chính linh hoạt. Ngoài ra, cú pháp về khóa chính trong MySQL cũng gần giống với các hệ quản trị khác như SQL Server (T-SQL).

Bài viết liên quan:

TCL Trong MySQL – Quản Lý Giao Dịch Với COMMIT, ROLLBACK, SAVEPOINT
FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị
TRIGGER Trong MySQL – Kích Hoạt Tự Động Khi Dữ Liệu Thay Đổi
Giao Dịch (Transaction) Trong MySQL — START TRANSACTION, COMMIT, ROLLBACK
Stored Procedure Trong MySQL — thủ tục lưu trữ
Tăng Tốc Truy Vấn Dữ Liệu Với INDEX Trong MySQL
VIEW Trong MySQL — Bảng Ảo Từ Truy Vấn
Điều Kiện Trong Truy Vấn Với CASE WHEN và Wildcard, REGEXP trong MySQL
Truy Vấn Con (SUBQUERY) và Biểu Thức Bảng Chung (CTE) Trong MySQL
Kết Hợp Dữ Liệu Từ Nhiều Bảng Với JOIN Trong MySQL
Hàm Tổng Hợp và Nhóm Dữ Liệu Trong MySQL: GROUP BY, HAVING
Truy Vấn Dữ Liệu Với SELECT Trong MySQL

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

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

Truy Vấn Dữ Liệu Với SELECT Trong MySQL

Các Lệnh DML Cơ Bản Trong MySQL: INSERT, UPDATE, DELETE

TCL Trong MySQL – Quản Lý Giao Dịch Với COMMIT, ROLLBACK, SAVEPOINT

DCL Trong MySQL – Quản Lý Quyền Truy Cập Với GRANT và REVOKE

FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị

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
×