MySQL Foreign Key: Định Nghĩa và Cú Pháp
Trong cơ sở dữ liệu quan hệ, một Foreign Key (khóa ngoại) là một trường (hoặc một tập hợp các trường) trong một bảng, dùng để liên kết với một bảng khác. Khóa ngoại tạo ra một mối quan hệ giữa hai bảng, giúp đảm bảo tính toàn vẹn của dữ liệu.
Khi một trường được chỉ định là khóa ngoại, nó chỉ có thể chứa các giá trị mà đã tồn tại trong trường khóa chính (Primary Key) của bảng đang liên kết, từ đó đảm bảo rằng dữ liệu giữa các bảng có sự nhất quán.
Cú Pháp
Cú pháp để tạo Foreign Key trong MySQL có thể được sử dụng trong câu lệnh tạo bảng (CREATE TABLE) hoặc câu lệnh thay đổi bảng (ALTER TABLE).
1. Tạo Foreign Key trong câu lệnh CREATE TABLE
CREATE TABLE ten_bang ( id INT PRIMARY KEY, ten VARCHAR(100), ma_khoa_ngoai INT, FOREIGN KEY (ma_khoa_ngoai) REFERENCES ten_bang_khac(id) );
2. Thêm Foreign Key vào bảng đã tồn tại với ALTER TABLE
ALTER TABLE ten_bang ADD CONSTRAINT fk_ma_khoa_ngoai FOREIGN KEY (ma_khoa_ngoai) REFERENCES ten_bang_khac(id);
Ví Dụ Về Foreign Key
Giả sử bạn có hai bảng: customers (khách hàng) và orders (đơn hàng). Mỗi đơn hàng thuộc về một khách hàng cụ thể. Để thực hiện điều này, bạn có thể tạo bảng như sau:
CREATE TABLE customers ( customer_id INT PRIMARY KEY, customer_name VARCHAR(100) ); CREATE TABLE orders ( order_id INT PRIMARY KEY, order_date DATE, customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
Trong ví dụ này, trường customer_id trong bảng orders là khóa ngoại liên kết với khóa chính customer_id trong bảng customers. Điều này đảm bảo rằng mỗi đơn hàng đều thuộc về một khách hàng hợp lệ.
Ý Nghĩa Của Foreign Key
Khóa ngoại không chỉ giúp duy trì tính toàn vẹn dữ liệu mà còn hỗ trợ trong việc truy vấn dữ liệu giữa các bảng một cách hiệu quả. Việc kết hợp các bảng dựa trên các khóa ngoại cho phép người dùng truy cập và phân tích dữ liệu theo cách linh hoạt hơn.
Kết Luận
MySQL Foreign Key là một công cụ mạnh mẽ trong việc quản lý và duy trì tính toàn vẹn của dữ liệu trong các hệ quản trị cơ sở dữ liệu. Hiểu rõ và sử dụng đúng cách khóa ngoại sẽ giúp bạn xây dựng hệ thống cơ sở dữ liệu hiệu quả và tin cậy hơn.