W3School

Ràng buộc FOREIGN KEY trong SQL

Ràng buộc FOREIGN KEY được sử dụng để ngăn chặn các hành động phá hủy liên kết giữa các bảng.

FOREIGN KEY là một trường (hoặc tập hợp các trường) trong một bảng, tham chiếu đến PRIMARY KEY trong một bảng khác.

Bảng có khóa ngoại được gọi là bảng con và bảng có khóa chính được gọi là bảng tham chiếu hoặc bảng cha.

Nhìn vào hai bảng sau:

Bảng Persons

PersonIDLastNameFirstNameAge
1HansenOla30
2SvendsonTove23
3PettersenKari20

Bảng Orders

OrderIDOrderNumberPersonID
1778953
2446783
3224562
4245621

Lưu ý rằng cột “PersonID” trong bảng “Order” trỏ đến cột “PersonID” trong bảng “Person”.

Cột “PersonID” trong bảng “Person” là cột trong bảng PRIMARY KEY “Person”.

Cột “PersonID” trong bảng “Orders” là một FOREIGN KEY trong bảng “Orders”.

Ràng buộc FOREIGN KEY ngăn không cho dữ liệu không hợp lệ được chèn vào cột khóa ngoại, nó phải là một trong những giá trị có trong bảng mẹ.

SQL FOREIGN KEY khi TẠO BẢNG

SQL sau tạo một FOREIGN KEY trên cột “PersonID” khi bảng “Orders” được tạo:

MySQL:

SQL Server / Oracle / MS Access:

Để cho phép đặt tên cho một ràng buộc FOREIGN KEY và để xác định một ràng buộc FOREIGN KEY trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

SQL FOREIGN KEY trên ALTER TABLE

Để tạo ràng buộc FOREIGN KEY trên cột “PersonID” khi bảng “Orders” đã được tạo, hãy sử dụng SQL sau:

MySQL / SQL Server / Oracle / MS Access:

Để cho phép đặt tên cho một ràng buộc FOREIGN KEY và để xác định một ràng buộc FOREIGN KEY trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

Xóa Ràng buộc Foreign Key

Để loại bỏ một ràng buộc FOREIGN KEY, hãy sử dụng SQL sau:

MySQL:

SQL Server / Oracle / MS Access:

Bạn có thể download cơ sở dữ liệu Northwind để bắt đầu thực hành tại đây:

- Dành cho Sql Server, MS Access Download
- Dành cho Mysql: Tạo bảng trước với Download Table sau đó hãy điền data với Download Data
- Dành cho Oracle Download

Lưu ý: Tên bảng trong CSDL cho SQL Server thường được viết hoa chữ đầu. Với Mysql thì tên bảng được viết thường. Và với Oracle thì tên bảng toàn bộ được viết hoa. Bạn hãy viết đúng tên bảng trong query của mình nhé.

Trong nội dung bài viết, đôi khi tên bảng được viết dưới dạng tiếng Việt, ví dụ:

- Customers: Khách hàng
- Orders: Đơn hàng
- Employees: Nhân viên
- Shipers: Giao hàng
- Invoices: Hoá đơn

W3School

Leave a comment

Your email address will not be published. Required fields are marked *