Cách tạo ràng buộc khóa chính khóa ngoại trong sql

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

Bạn đang xem: Cách tạo ràng buộc khóa chính khóa ngoại trong sql

Tham khảo: Cách thực hiện PRIMARY KEY trong SQL

1. Ràng buộc FOREIGN KEY vào SQL

Ràng buộc FOREIGN KEY tuyệt khóa ngoại được áp dụng để phòng các hành vi sẽ làm hủy bỏ liên kết giữa các bảng.

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

Một bảng với khóa nước ngoài được hotline là bảng con và bảng với khóa bao gồm được call là bảng cha hay bảng tham chiếu.

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

*

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

Cột PersonID vào bảng Persons là PRIMARY KEY trong 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 những 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ị bao gồm trong bảng cha.

Xem thêm: Báonet - Ứng Dụng Capcut

2. Tạo ràng buộc FOREIGN KEY

Có hai phương pháp để tạo ràng buộc vào SQL, cách trước tiên là thêm buộc ràng khi sản xuất bảng bằng câu lệnh CREATE TABLE. Biện pháp thứ hai để sinh sản ràng buộc là áp dụng câu lệnh ALTER TABLE, biện 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 thực hiện câu lệnh ALTER TABLE vào SQL

Để thực hiện các ví dụ này, bạn phải nhập cơ sở dữ liệu mẫu Northwind vào SQL server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:

Tham khảo: Hướng dẫn tải và thiết lập dữ liệu mẫu mã Northwind vào SQL server Management Studio

Sử dụng CREATE TABLE

Đầu tiên, bạn phải tạo một bảng Persons bao gồm ràng buộc PRIMARY KEY 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, dùng câu lệnh SQL tiếp sau đây để tạo thành một FOREIGN KEY bên trên cột “PersonID” khi tạo ra 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, đã tất cả một bảng thương hiệu là Orders, nên chúng ta không thể chế tác thêm bảng cùng tên. Chúng ta cũng có thể đặt một thương hiệu khác mang lại bảng như ví dụ như trên là OrderTest.

Ngoài ra, chúng ta có thể đặt tên cho FOREIGN KEY và xác định nó trên nhiều cột bằng 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 lúc đã tạo thành bảng, chúng ta không thể chế tác một bảng trùng tên. Vì vậy, hãy xóa bảng Persons đã tạo trên, trước khi liên tục thực hiện những ví dụ bên dưới đây. Đối với những ví dụ thêm ràng buộc bằng câu lệnh ALTER TABLE, các bạn hãy tạo bảng không chứa ràng buộc PRIMARY KEY.

Sử dụng ALTER TABLE

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

ALTER TABLE OrderTest

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

Nếu bạn muốn đặt tên cho 1 ràng buộc FOREIGN KEY và khẳng định một ràng buộc trên nhiều cột, hãy 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 có thể báo lỗi trùng tên, hãy thay tên FK_PersonOrder thành một cái tên khác.

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

Để xóa một buộc ràng FOREIGN KEY trong SQL, hãy cần sử 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 cất ràng buộc cùng tên của buộc ràng khi tiến hành xóa.

Trên đó là những tin tức cơ phiên bản mà bạn nên biết về khóa ngoại tuyệt FOREIGN KEY. Trong các bài viết tiếp theo bọn họ sẽ liên tiếp với những kỹ năng và kiến thức hữu ích khác về SQL thích hợp và dữ liệu nói chung, nhớ là đón đọc tại BAC"s Blog.

Nguồn tham khảo:

https://www.w3schools.com/

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

BAClà đối chọi vị giảng dạy BA trước tiên tại Việt Nam. Đối tác thừa nhận 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 riêng cho từng doanh nghiệp. Chương trình được thiết kế theo phong cách riêng theo yêu ước của doanh nghiệp, góp doanh nghiệp giải quyết và xử lý những khó khăn và support phát triển.