FOREIGN KEY nói một cách khác là khóa ngoại, cũng là giữa những ràng buộc của SQL. Nếu đối chiếu với khóa bao gồm (PRIMARY KEY) thì khóa nước ngoài cũng đóng góp một vai trò quan trọng đặc biệt không kém. Nội dung bài viết này để giúp đỡ làm rõ các vấn đề tương quan đến FOREIGN KEY.

Bạn đang xem: Khác biệt giữa khóa chính và khóa ngoại trong sql

Tham khảo: Cách sử dụng PRIMARY KEY trong SQL

1. Buộc ràng FOREIGN KEY trong SQL

Ràng buộc FOREIGN KEY giỏi khóa ngoại được áp dụng để chống các hành động sẽ có tác dụng hủy bỏ links giữa các bảng.

Một FOREIGN KEY là 1 trường (hoặc tập hợp những trường) vào một bảng, đề cập mang lại PRIMARY KEY vào một bảng khác.

Một bảng cùng với khóa ngoại được hotline là bảng bé và bảng với khóa thiết yếu được điện thoại tư vấn là bảng cha hay bảng tham chiếu.

Để dễ hình dung, các bạn hãy nhìn vào ví dụ dưới đây:

*

Chú ý mang đến cột PersonID của bảng Orders, các bạn sẽ thấy cột này trỏ mang lại cột PersonID của bảng Persons.

Cột PersonID trong bảng Persons là PRIMARY KEY vào bảng Persons.

Cột PersonID trong bảng Orders là FOREIGN KEY vào bảng Orders.

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

Xem thêm: 50 Câu Tiếng Anh Thông Dụng Hàng Ngày, 50 Câu Tiếng Anh Giao Tiếp Thông Dụng Hàng Ngày

2. Sản xuất ràng buộc FOREIGN KEY

Có hai cách để tạo ràng buộc vào SQL, cách thứ nhất là thêm buộc ràng khi tạo thành bảng bởi câu lệnh CREATE TABLE. Phương pháp thứ hai để sinh sản ràng buộc là áp dụng câu lệnh ALTER TABLE, giải pháp này thường dùng làm chỉnh sửa ràng buộc gồm sẵn hoặc thêm mới.

Tham khảo: Cách sử dụng câu lệnh ALTER TABLE vào SQL

Để tiến hành các ví dụ như này, bạn cần nhập cơ sở tài liệu mẫu Northwind vào SQL hệ thống Management Studio. Hãy xem nội dung bài viết hướng dẫn ngay bên dưới đây:

Tham khảo: Hướng dẫn cài và thiết đặt dữ liệu mẫu mã Northwind trong SQL hệ thống Management Studio

Sử dụng CREATE TABLE

Đầu tiên, bạn phải tạo một bảng Persons có ràng buộc PRIMARY KEY bên trên cột PersonID bởi cú pháp sau:

CREATE TABLE Persons (

PersonID int NOT NULL PRIMARY KEY,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Age int

);

*

Tiếp theo, sử dụng câu lệnh SQL dưới đây để tạo nên một FOREIGN KEY bên trên cột “PersonID” khi tạo thành bảng “OrderTest”:

CREATE TABLE OrderTest (

OrderID int NOT NULL PRIMARY KEY,

OrderNumber int NOT NULL,

PersonID int FOREIGN KEY REFERENCES Persons(PersonID)

);

*

Lưu ý: nếu như bạn sử dụng cơ sở tài liệu mẫu Northwind, đã gồm một bảng tên là Orders, nên các bạn không thể sản xuất thêm bảng cùng tên. Chúng ta cũng có thể đặt một tên khác cho bảng như ví dụ như trên là OrderTest.

Ngoài ra, bạn cũng có thể đặt tên đến FOREIGN KEY và xác định nó trên nhiều cột bởi câu lệnh như sau:

CREATE TABLE OrderTest (

OrderID int NOT NULL,

OrderNumber int NOT NULL,

PersonID int,

PRIMARY KEY (OrderID),

CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)

REFERENCES Persons(PersonID)

);

Sau khi đã chế tạo bảng, bạn không thể sinh sản một bảng trùng tên. Bởi vậy, hãy xóa bảng Persons đã tạo ra trên, trước khi tiếp tục thực hiện các ví dụ dưới đây. Đối với các ví dụ thêm ràng buộc bằng câu lệnh ALTER TABLE, bạn hãy tạo bảng không cất ràng buộc PRIMARY KEY.

Sử dụng ALTER TABLE

Để tạo một ràng buộc FOREIGN KEY bên trên cột “PersonID” khi bảng đã sinh sản trước kia và chưa xuất hiện ràng buộc, hãy cần sử dụng câu lệnh sau:

ALTER TABLE OrderTest

ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

Nếu bạn có nhu cầu đặt tên cho 1 ràng buộc FOREIGN KEY và khẳng định một buộc ràng trên các cột, hãy cần sử dụng cú pháp sau:

ALTER TABLE OrderTest

ADD CONSTRAINT FK_PersonOrder

FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

Nếu nhiều người đang dùng cơ sở tài liệu Northwind, hệ thống rất có thể báo lỗi trùng tên, hãy đổi tên FK_PersonOrder thành một chiếc tên khác.

3. Xóa một buộc ràng FOREIGN KEY

Để xóa một ràng buộc FOREIGN KEY trong SQL, hãy dùng cú pháp sau:

ALTER TABLE OrdersTest

DROP CONSTRAINT FK_PersonOrder;

Lưu ý: bạn cần nhập đúng thương hiệu bảng chứa ràng buộc và tên của buộc ràng khi thực hiện xóa.

Trên đó là những thông tin cơ bạn dạng mà bạn nên biết về khóa ngoại xuất xắc FOREIGN KEY. Vào các nội dung bài viết tiếp theo họ sẽ liên tục với những kiến thức và kỹ năng hữu ích khác về SQL nói riêng và tài liệu nói chung, hãy nhớ là đón gọi tại BAC"s Blog.

Nguồn tham khảo:

https://www.w3schools.com/

Nhu cầu đào tạo và huấn luyện doanh nghiệp

BAClà solo vị đào tạo BA thứ nhất tại Việt Nam. Đối tác bằng lòng củaIIBAquốc tế. Ngoài các khóa học public,BACcòn có các khóa học in house dành cho từng doanh nghiệp. Chương trình được thiết kế với riêng theo yêu cầu của doanh nghiệp, góp doanh nghiệp xử lý những khó khăn và hỗ trợ tư vấn phát triển.