Ngôn Ngữ SQL - Khóa Ngoại
Có thể bạn quan tâm
Trong cơ sở dữ liệu quan hệ, khóa ngoại là trường hoặc cột được sử dụng để thiết lập liên kết giữa hai bảng.
Nói một cách đơn giản, một khóa ngoại trong một bảng được sử dụng để trỏ đến khóa chính trong một bảng khác.
Chúng ta lấy một ví dụ để giải thích :
Dưới đây là hai bảng đầu tiên là bảng sinh viên và thứ hai là bảng đơn hàng.
Ở đây các đơn đặt hàng được bởi các sinh viên.
Bảng "STUDENTS"
S_Id | LastName | FirstName | CITY |
---|---|---|---|
1 | MAURYA | AJEET | ALLAHABAD |
2 | JAISWAL | RATAN | GHAZIABAD |
3 | ARORA | SAUMYA | MODINAGAR |
Bảng "ORDERS":
O_Id | OrderNo | S_Id |
---|---|---|
1 | 99586465 | 2 |
2 | 78466588 | 2 |
3 | 22354846 | 3 |
4 | 57698656 | 1 |
- Cột "S_Id" trong bảng "STUDENTS" là khóa chính trong bảng "STUDENTS".
- Cột "S_Id" trong bảng "ORDERS" là khóa ngại trong bảng "ORDERS".
Ràng buộc khóa ngoài thường ngăn chặn việc phá hủy liên kết giữa các bảng.
Nó cũng ngăn chặn dữ liệu không hợp lệ để nhập vào cột khóa ngoài.
Cách tạo ràng buộc khóa ngoại trong bảng bằng câu lệnh SQL
(Xác định ràng buộc khóa ngoại trên một cột)
Để tạo khóa ngoại trên cột "S_Id" khi bảng "ORDERS" được tạo:
MySQL:
CREATE TABLE orders ( O_Id int NOT NULL, Order_No int NOT NULL, S_Id int, PRIMAY KEY (O_Id), FOREIGN KEY (S_Id) REFERENCES Persons (S_Id) )SQL Server /Oracle / MS Access:
CREATE TABLE Orders ( O_Id int NOT NULL PRIMAY KEY, Order_No int NOT NULL, S_Id int FOREIGN KEY REFERENCES persons (S_Id) )Tạo ràng buộc khóa ngoại dùng lệnh ALTER TABLE trong SQL
Nếu bảng ORDERS đã được tạo và bạn muốn tạo ràng buộc khóa ngoại trên cột "S_Id", bạn nên viết cú pháp sau:
Xác định cột cần tạo khóa ngoại :
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY(S_Id) REFERENCES Students (S_Id)Xóa ràng buộc khóa ngoại trong bảng
Cú pháp:
MySQL:
ALTER TABLE Orders ROP FOREIGN KEY fk_PerOrdersSQL Server / Oracle / MS Access:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrdersSự khác biệt giữa khóa chính và khóa ngoại trong SQL:
Đây là một số khác biệt quan trọng giữa khóa chính và khóa ngoại trong SQL-
Khóa chính không thể là null, mặt khác, khóa ngoại có thể là null.
Khóa chính luôn là duy nhất trong khi khóa ngoại có thể nhiều hơn một.
Khóa chính xác định duy nhất một bản ghi trong bảng trong khi khóa ngoại là trường trong bảng là khóa chính trong bảng khác.
Mặt khác, chỉ có một khóa chính trong bảng, chúng ta có thể có nhiều khóa ngoại trong bảng.
Theo mặc định, khóa chính thêm một chỉ mục được phân cụm, mặt khác, khóa ngoại không tự động tạo một chỉ mục, phân cụm hoặc không phân cụm. Bạn phải tự tạo một chỉ mục cho khóa ngoại.
Từ khóa » Khóa Chính Và Khóa Ngoại Trong Access
-
Khác Biệt Giữa Khóa Chính Và Khóa Ngoại Trong SQL - Viblo
-
Tại Sao Phải đặt Khóa Ngoại Trong Access
-
Thêm Hoặc Thay đổi Khóa Chính Của Bảng Trong Access
-
Tạo 2 Khóa Chính Trong Access
-
Sự Khác Biệt Giữa Khóa Ngoại Và Khóa Chính - Sawakinome
-
Khóa Chính Là Gì? Phân Biệt Khóa Chính Và Khóa Ngoại Trong SQL
-
Bài 03: Tạo Khóa Chính, Khóa Phụ - YouTube
-
Tạo 2 Khóa Chính Trong Access
-
Khóa Ngoại – Wikipedia Tiếng Việt
-
Trong Bảng Nếu Không Có Khóa Chính được Không Vì Sao
-
Khóa Chính Là Gì? Phân Biệt Khóa Chính Và Khóa Ngoại Trong SQL
-
Các Khái Niệm Cơ Bản Và Thực Hành Tạo Các Bảng Table Trong MS ...
-
Khóa Ngoại (Foreign Key) Trong MySQL - Freetuts