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:
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:
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ú ý: