[Thực hành] Tạo khoá ngoại
NỘI DUNG BÀI VIẾT
Mục tiêu
Thực hành tạo khoá ngoại
Mô tả
Hướng dẫn nộp bài:
Up code lên github
Paste link github vào phần nộp bài
Khoá ngoại là gì?
Khoá ngoại (foreign key – viết ngắn gọn là FK) là cơ chế để tạo liên kết giữa các bảng trong cùng một cơ sở dữ liệu. Chẳng hạn, trong CSDL quản lý bán hàng, bảng customer và bảng order có thể có khoá ngoại để liên kết với nhau.
Khoá ngoại được đặt trên một cột của bảng này và tham chiếu đến khoá chính của một bảng khác. Chẳng hạn, khoá ngoại được đặt trên cột customer_id của bảng order và tham chiếu đến cột id của bảng customer.
Kiểu dữ liệu của khoá ngoại và khoá chính mà nó tham chiếu phải giống nhau. Thông thường thì các bảng đều sử dụng kiểu INTEGER cho khoá chính.
Cú pháp tạo khoá ngoại
Để tạo khoá ngoại liên kết giữa 2 bảng, chúng ta sử dụng từ khoá FOREIGN KEY REFERENCES.
Ví dụ:
Với bảng customers được tạo ra như sau:
CREATE TABLE customers( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(40), address VARCHAR(255), email VARCHAR(255));
Thì bảng orders được tạo ra và định nghĩa khoá ngoại như sau:
CREATE TABLE orders( id INT AUTO_INCREMENT, staff VARCHAR(50), PRIMARY KEY(id), customer_id INT FOREIGN KEY REFERENCES customers(id));
Ngoài ra, chúng ta cũng có thể tách định nghĩa khoá ngoại thành một câu lệnh riêng biệt khỏi khai báo của cột, như sau:
CREATE TABLE orders( id INT AUTO_INCREMENT, staff VARCHAR(50), PRIMARY KEY(id), customer_id INT, FOREIGN KEY (customer_id) REFERENCES customers(id));
Leave a Reply