FOREIGN KEY còn gọi 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 bao gồm (PRIMARY KEY) thì khóa nước ngoài cũng đóng góp một vai trò quan trọng không kém. Nội dung bài viết này để giúp làm rõ những vấn đề liên quan đến FOREIGN KEY.
Bạn đang xem: Tạo ràng buộc trong sql
Tham khảo: Cách thực hiện PRIMARY KEY trong SQL
1. Buộc ràng FOREIGN KEY trong SQLRàng buộc FOREIGN KEY giỏi khóa ngoại được sử dụng để phòng các hành vi sẽ có tác dụng hủy bỏ link giữa những bảng.
Một FOREIGN KEY là 1 trong những trường (hoặc tập hợp các trường) vào một bảng, đề cập đến PRIMARY KEY trong một bảng khác.
Một bảng với khóa ngoại được gọi là bảng bé và bảng cùng với khóa thiết yếu được hotline là bảng thân phụ 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ú ý cho 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 vào bảng Orders là FOREIGN KEY trong bảng Orders.
Ràng buộc FOREIGN KEY ngăn các dữ liệu không hợp lệ được chèn vào cột khóa ngoại, cũng chính vì nó yêu cầu là trong số những giá trị có trong bảng cha.
Xem thêm: Diễn Viên Duy Thanh Bị Ung Thư Giai Đoạn Cuối: "Tôi Ước Bạn Bè Nhớ Đến Tên Mình"
2. Chế tạo ràng buộc FOREIGN KEYCó hai cách để tạo ràng buộc vào SQL, cách đầu tiên là thêm buộc ràng khi tạo nên bảng bởi câu lệnh CREATE TABLE. Cách thứ nhì để chế tạo ra ràng buộc là sử dụng câu lệnh ALTER TABLE, bí quyết này thường dùng làm chỉnh sửa ràng buộc có sẵn hoặc thêm mới.
Tham khảo: Cách sử dụng câu lệnh ALTER TABLE trong SQL
Để tiến hành các lấy 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 tải và setup dữ liệu mẫu Northwind vào SQL vps Management Studio
Sử dụng CREATE TABLEĐầu tiên, bạn cần tạo một bảng Persons tất cả 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 sau đây để tạo ra 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 bạn sử dụng cơ sở tài liệu mẫu Northwind, đã bao gồm một bảng thương hiệu là Orders, nên các bạn không thể tạo thêm bảng thuộc tên. Chúng ta có thể đặt một thương hiệu khác đến bảng như lấy ví dụ như trên là OrderTest.
Ngoài ra, chúng ta có thể đặt tên cho FOREIGN KEY và xác minh 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 bảng, chúng ta không thể chế tác một bảng trùng tên. Vì chưng vậy, hãy xóa bảng Persons đã chế tạo ra 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 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 đựng ràng buộc PRIMARY KEY.
Sử dụng ALTER TABLEĐể sản xuất một buộc ràng FOREIGN KEY trên cột “PersonID” lúc bảng đã chế tạo trước kia và chưa xuất hiện ràng buộc, hãy 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à xác minh một buộc ràng trên nhiều cột, hãy 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 có thể báo lỗi trùng tên, hãy đổi 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 ràng buộc FOREIGN KEY vào SQL, hãy sử dụng cú pháp sau:
ALTER TABLE OrdersTest
DROP CONSTRAINT FK_PersonOrder;
Lưu ý: bạn cần nhập đúng tên bảng chứa ràng buộc với tên của buộc ràng khi tiến hành xóa.
Trên đó là những thông tin cơ bản mà bạn cần biết về khóa ngoại giỏi FOREIGN KEY. Vào các nội dung 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ông giống về SQL nói riêng và tài liệu nói chung, nhớ rằng đón đọc tại BAC"s Blog.
Nguồn tham khảo:
https://www.w3schools.com/
Nhu cầu đào tạo và giảng dạy doanh nghiệp
BAClà đối kháng vị đào tạo và giảng dạy BA trước tiên tại Việt Nam. Đối tác chấp thuận củaIIBAquốc tế. Ngoài những khóa học tập public,BACcòn có các khóa học tập in house dành riêng cho từng doanh nghiệp. Chương trình có thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết và xử lý những khó khăn và support phát triển.