Những điểm chính
Khóa ngoại là gì?
Khóa ngoại (foreign key) là ràng buộc được MySQL sử dụng để tạo kết nối giữa hai bảng. Nó đảm bảo rằng dữ liệu trong bảng con phải tham chiếu hợp lệ đến dữ liệu tồn tại trong bảng cha, từ đó tránh lỗi dữ liệu mồ côi và giữ tính thống nhất cho hệ thống.
Lưu ý: Khóa ngoại không làm truy vấn JOIN nhanh hơn. Tốc độ JOIN phụ thuộc vào index, không phải foreign key. Foreign key chỉ kiểm soát tính hợp lệ của dữ liệu.
.png)
Ví dụ:
Điều này đảm bảo mỗi đơn hàng luôn thuộc về một khách hàng có thật.
Tầm quan trọng của khóa ngoại trong thiết kế database
Khóa ngoại mang đến nhiều lợi ích trong quản lý cơ sở dữ liệu:
Ví dụ thực tế về khóa ngoại
Bảng customers
Bảng orders
|
order_id |
customer_id |
order_date |
total_amount |
|
1001 |
1 |
2025-10-01 |
100000 |
|
1002 |
1 |
2025-10-02 |
750000 |
|
1003 |
2 |
2025-10-03 |
200000 |
|
1004 |
3 |
2025-10-04 |
1000000 |
|
1005 |
2 |
2025-10-05 |
1280000 |
Cột customer_id trong bảng orders chính là khóa ngoại, đảm bảo mọi đơn hàng đều gắn với một khách hàng hợp lệ.
Những điều cần chuẩn bị trước khi tạo khóa ngoại
Hướng dẫn tạo khóa ngoại trong phpMyAdmin (GUI)
Bước 1: Mở phpMyAdmin và chọn database
.png)
Bước 2: Mở bảng con → tab Structure
Ví dụ: chọn bảng orders.
Bước 3: Thêm Index cho cột khóa ngoại
Nhấn Index tại cột customer_id.

Bước 4: Vào tab Relation view
Tab này nằm dưới phần cấu trúc bảng.
Bước 5: Thiết lập khóa ngoại
Bước 6: Lưu thay đổi
Khóa ngoại được tạo thành công.
Tạo khóa ngoại bằng SQL trong phpMyAdmin
1. Tạo bảng mới có khóa ngoại
2. Thêm khóa ngoại vào bảng đã có
Tạo khóa ngoại bằng MySQL theo từng bước
Bước 1: Tạo bảng cha
Bước 2: Tạo bảng con
Bước 3: Thêm khóa ngoại
Các tùy chọn ON DELETE / ON UPDATE
Cách xóa khóa ngoại trong MySQL
Bước 1: Xác định tên ràng buộc
Trong phpMyAdmin: Structure → Relation view.
Bước 2: Dùng lệnh DROP FOREIGN KEY
Xóa khóa ngoại sẽ loại bỏ cơ chế kiểm soát dữ liệu liên kết, nên hãy cân nhắc trước khi thực hiện.