Khóa ngoại (Foreign Key) trong MySQL

Chào mừng bạn đến với bài viết về khóa ngoại trong MySQL! Trong bài viết này, chúng ta sẽ tìm hiểu về khóa ngoại, một khái niệm quan trọng trong các hệ quản trị cơ sở dữ liệu như MySQL, SQL Server và Oracle.

1. Khóa ngoại (Foreign Key) là gì?

Khóa ngoại là một mối quan hệ giữa hai bảng trong cơ sở dữ liệu. Mối quan hệ này được gọi là mối quan hệ cha – con, trong đó bảng A đóng vai trò là bảng cha và bảng B đóng vai trò là bảng con. Mỗi bảng A có một thuộc tính liên kết đến bảng B thông qua khóa ngoại.

Khóa ngoại giữa hai bảng và khóa ngoại trỏ đến chính nó là hai loại khóa ngoại phổ biến. Trong khóa ngoại giữa hai bảng, mỗi bản ghi trong bảng con chỉ thuộc về một bản ghi duy nhất trong bảng cha. Trong khóa ngoại trỏ đến chính nó, bảng sẽ có một khóa ngoại trỏ đến chính khóa chính của nó.

2. Cách tạo khóa ngoại (Foreign Key) trong MySQL

Có nhiều cách để tạo khóa ngoại trong MySQL. Bạn có thể sử dụng lệnh tạo bảng CREATE TABLE hoặc lệnh ALTER TABLE để thêm khóa ngoại sau khi đã tạo bảng.

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

Cú pháp tạo khóa ngoại trong lệnh tạo bảng tương tự như tạo khóa chính. Bạn chỉ cần đặt khóa ngoại ở cuối phần khai báo trường của bảng con. Khóa ngoại sẽ không có tên nếu bạn sử dụng cách này.

Tạo bằng lệnh ALTER TABLE

Nếu bạn đã tạo bảng trước đó, bạn có thể sử dụng lệnh ALTER TABLE để thêm khóa ngoại vào bảng.

Tạo khóa ngoại trỏ đến chính bảng đó

Đối với trường hợp khóa ngoại trỏ đến chính bảng đó, bạn có thể sử dụng cú pháp tương tự. Thay vì tham chiếu tới bảng khác, khóa ngoại sẽ trỏ đến chính bảng đó.

3. Xóa (Drop) Khóa ngoại (Foreign Key)

Để xóa khóa ngoại, bạn cần biết tên của khóa ngoại đó. Nếu bạn đã sử dụng từ khóa CONSTRAINT để đặt tên cho khóa ngoại khi tạo, bạn có thể xóa khóa ngoại bằng cách sử dụng lệnh ALTER TABLE.

4. Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về khóa ngoại trong MySQL. Khóa ngoại là một khái niệm quan trọng giúp xác định mối quan hệ giữa các bảng trong cơ sở dữ liệu. Chúng ta đã tìm hiểu cách tạo khóa ngoại và cách xóa khóa ngoại trong MySQL.

Nếu bạn quan tâm đến các lệnh ALTER TABLE khác, hãy tiếp tục theo dõi bài viết tiếp theo của chúng tôi.

FEATURED TOPIC