Primary Key là gì? Vai trò và cách sử dụng khóa chính trong SQL

Vậy Primary Key là gì, có những đặc điểm nào và cách khai báo khóa chính trong SQL ra sao? Hãy cùng tìm hiểu qua nội dung dưới đây.

 

1. Primary Key là gì?

 

Primary Key (khóa chính) là một trường hoặc tập hợp nhiều trường được sử dụng để xác định duy nhất mỗi bản ghi trong một bảng cơ sở dữ liệu.

 

Mỗi bảng chỉ có một Primary Key, tuy nhiên khóa chính có thể bao gồm một hoặc nhiều cột.

 

Ví dụ, bảng Customers lưu thông tin khách hàng:

 

CustomerID FullName Email
1 Nguyễn Văn A [email protected]
2 Trần Văn B [email protected]
3 Lê Văn C [email protected]

 

Trong ví dụ trên, CustomerID là Primary Key vì mỗi khách hàng có một mã định danh riêng, không trùng lặp.

 

2. Đặc điểm của Primary Key

 

Khóa chính có một số đặc điểm quan trọng:

 

  • Giá trị duy nhất: Không được có hai bản ghi cùng giá trị khóa chính.

 

  • Không được NULL: Mỗi bản ghi phải có giá trị khóa chính hợp lệ.

 

  • Mỗi bảng chỉ có một khóa chính: Khóa chính có thể gồm nhiều cột nhưng vẫn được xem là một ràng buộc Primary Key.

 

  • Dùng để liên kết dữ liệu: Có thể được tham chiếu bởi Foreign Key ở bảng khác.

 

  • Hỗ trợ truy vấn: Hệ quản trị cơ sở dữ liệu thường tạo chỉ mục cho Primary Key để hỗ trợ tìm kiếm và kiểm tra tính duy nhất.

 

3. Các loại Primary Key phổ biến

 

Trong thiết kế cơ sở dữ liệu, khóa chính thường được chia thành hai dạng:

 

Simple Primary Key: Khóa chính chỉ bao gồm một cột duy nhất.

 

Ví dụ: CustomerID trong bảng khách hàng.

 

Composite Primary Key: Khóa chính được tạo từ hai hoặc nhiều cột kết hợp với nhau.

 

Ví dụ, bảng OrderDetails có thể sử dụng hai trường OrderID và ProductID làm khóa chính để xác định từng sản phẩm trong đơn hàng.

 

4. Cách tạo Primary Key trong SQL

 

Bạn có thể khai báo khóa chính ngay khi tạo bảng hoặc bổ sung vào bảng đã tồn tại.

 

Tạo bảng và khai báo Primary Key:

 

CREATE TABLE Customers (

    CustomerID INT PRIMARY KEY,

    FullName VARCHAR(100),

    Email VARCHAR(100)

);

 

Tạo khóa chính gồm nhiều cột:

 

CREATE TABLE OrderDetails (

    OrderID INT,

    ProductID INT,

    Quantity INT,

    PRIMARY KEY (OrderID, ProductID)

);

 

Thêm Primary Key vào bảng có sẵn:

 

ALTER TABLE Customers

ADD CONSTRAINT PK_Customers

PRIMARY KEY (CustomerID);

 

Lưu ý: Cột được chọn làm khóa chính phải không có giá trị NULL hoặc trùng lặp trước khi thêm ràng buộc.

 

5. Phân biệt Primary Key và Foreign Key

 

Primary Key và Foreign Key đều là những thành phần quan trọng trong cơ sở dữ liệu quan hệ nhưng có chức năng khác nhau.

 

Tiêu chí Primary Key Foreign Key
Chức năng Xác định duy nhất bản ghi Liên kết dữ liệu giữa các bảng
Giá trị trùng lặp Không được phép Có thể trùng lặp
Giá trị NULL Không được phép Có thể cho phép nếu không khai báo NOT NULL
Số lượng Một khóa chính mỗi bảng Có thể có nhiều khóa ngoại
Mục đích Định danh bản ghi Đảm bảo tính toàn vẹn tham chiếu

 

Ví dụ: CustomerID là Primary Key trong bảng Customers, đồng thời có thể được sử dụng làm Foreign Key trong bảng Orders để xác định đơn hàng thuộc về khách hàng nào.

 

6. Những lưu ý khi sử dụng Primary Key

 

Để thiết kế khóa chính hiệu quả, bạn nên chú ý:

 

  • Chọn trường có giá trị ổn định và không thay đổi thường xuyên.

 

  • Ưu tiên sử dụng mã định danh riêng như ID thay vì thông tin cá nhân.

 

  • Không sử dụng các trường có khả năng trùng lặp làm khóa chính.

 

  • Có thể sử dụng IDENTITY trong SQL Server hoặc AUTO_INCREMENT trong MySQL để tự động tăng giá trị.

 

  • Với bảng trung gian, cân nhắc sử dụng Composite Primary Key nếu phù hợp với nghiệp vụ.

 HỖ TRỢ TRỰC TUYẾN