Trong thị trường ngày nay, nơi nhiều công ty đa quốc gia sử dụng cơ sở dữ liệu quan hệ để xử lý dữ liệu, điều rất quan trọng là phải hiểu cách mỗi và mọi bảng có thể liên quan với nhau. Vì vậy, trong bài viết này về SQL khóa ngoại, tôi sẽ thảo luận về khóa ngoại trong các bảng để bạn hiểu mối quan hệ giữa các bảng.
Các chủ đề sau sẽ được đề cập trong bài viết này:
- Ràng buộc khóa ngoại là gì?
- Quy tắc cho Khoá ngoại
- Hoạt động Khóa Ngoại:
- Khóa ngoại SQL trên Tạo bảng
- Khóa ngoại SQL trên bảng thay thế
- Bỏ khóa ngoại
Ràng buộc Khoá ngoại là gì?
Khóa ngoại là một loại khóa dùng để liên kết hai bảng trong cơ sở dữ liệu. Vì vậy, khóa ngoại là một thuộc tính hoặc một tập hợp các thuộc tính trong một bảng tham chiếu đến khóa chính trong một bảng khác.
Ví dụ, nếu Bảng A và Bảng B có liên quan đến nhau, thì nếu Bảng A bao gồm khóa chính, bảng này sẽ được gọi là bảng tham chiếu hoặc bảng mẹ. Tương tự, nếu Bảng B bao gồm một khóa ngoại, thì bảng đó được gọi là bảng tham chiếu hoặc bảng con. Tham khảo hình ảnh bên dưới:
Bây giờ bạn đã biết khóa ngoại là gì, tiếp theo trong bài viết này về SQL khóa ngoại, chúng ta hãy hiểu các quy tắc của khóa ngoại.
Quy tắc cho Khóa ngoại
Quy tắc của Khóa ngoại như sau:
- Bảng có khóa ngoại được gọi là bảng con và bảng được tham chiếu bởi khóa ngoại được gọi là bảng mẹ.
- Cho phép giá trị rỗng trong khóa ngoại
- Các khóa ngoại có thể được sao chép
- Có thể có nhiều hơn một khóa ngoại trong bảng
- Mối quan hệ được thiết lập giữa các bảng được gọi là tính toàn vẹn tham chiếu
Bây giờ bạn đã biết các quy tắc của khóa ngoại là gì, tiếp theo trong bài viết này về SQL khóa ngoại, chúng ta hãy xem các hoạt động của khóa ngoại.
Hoạt động chính ở nước ngoài:
Để hiểu các thao tác khác nhau trên Khóa ngoại, hãy xem xét hai bảng sau:
Bảng khách hàng:
ID khách hàng | Tên khách hàng | Số điện thoại |
1 | Rohan | 9876543210 |
2 | Sonali | 9876567864 |
3 | Ajay | 9966448811 |
4 | Geeta | 9765432786 |
5 | Shubham | 9944888756 |
Bảng khóa học:
CourseID | Tên khóa học | CustomerID |
c01 | DevOps | 2 |
c02 | Học máy | 4 |
c03 | RPA | 1 |
c04 | Tableau | 3 |
c05 | AWS | 2 |
Bây giờ, nếu bạn quan sát, cột customerID trong bảng khóa học đề cập đến cột customerID trong bảng khách hàng. Cột ID khách hàng từ bảng khách hàng là Khóa chính và cột ID khách hàng từ bảng khóa học là Khóa ngoại của bảng đó.
Bắt đầu với thao tác đầu tiên:
Khóa ngoại trên Tạo bảng
Bạn có thể sử dụng cú pháp sau để tạo khóa ngoại trên cột "customerID" khi tạo bảng "khóa học":
#For SQL Server/ MS Access/ Oracle CREATE TABLE courses ( courseID varchar NOT NULL PRIMARY KEY, courseName varchar NOT NULL, customerID int FOREIGN KEY REFERENCES customers(customerID) ); #For MySQL CREATE TABLE courses ( courseID varchar NOT NULL PRIMARY KEY, courseName varchar NOT NULL, customerID int PRIMARY KEY (courseID), FOREIGN KEY (customerID) REFERENCES customers(customerID) );
Áp dụng khóa ngoại trên nhiều cột
Để áp dụng khóa ngoại trên nhiều cột trong khi tạo bảng, hãy tham khảo ví dụ sau:
CREATE TABLE courses ( courseID varchar NOT NULL, courseName varchar NOT NULL, customerID int, PRIMARY KEY (courseID), CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES customers(customerID) );
Tiếp theo, trong bài viết này về SQL khóa ngoại, chúng ta hãy xem cách sử dụng khóa ngoại trên Alter Table.
Khóa ngoại trên Bảng thay thế
Bạn có thể sử dụng cú pháp sau để tạo khóa ngoại trên cột “customerID” khi bảng “các khóa học” đã được tạo và bạn chỉ muốn thay đổi bảng:
ALTER TABLE courses ADD FOREIGN KEY (customerID) REFERENCES customers(customerID);
Nếu bạn muốn thêm tên vào ràng buộc Khoá ngoại và xác định tên đó trên nhiều cột, hãy sử dụng cú pháp SQL sau:
ALTER TABLE courses ADD CONSTRAINT FK_CustomerCourse FOREIGN KEY (customerID) REFERENCES Customers(customerID);
Tiếp theo, trong bài viết này về SQL khóa ngoại, chúng ta hãy hiểu cách bỏ khóa ngoại
Bỏ khóa ngoại
Để bỏ khóa ngoại, bạn có thể tham khảo ví dụ sau:
#For SQL Server/ MS Access/ Oracle ALTER TABLE courses DROP CONSTRAINT FK_CustomerCourse; For MYSQL ALTER TABLE courses DROP FOREIGN KEY FK_CustomerCourse;
Với điều này, chúng ta kết thúc bài viết này. Tôi hy vọng bạn đã hiểu cách sử dụng Khóa ngoại trong SQL. Nếu bạn muốn tìm hiểu thêm về MySQL và tìm hiểu cơ sở dữ liệu quan hệ nguồn mở này, sau đó xem Đào tạo chứng chỉ MySQL DBA đi kèm với đào tạo trực tiếp do người hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn đạt được thành thạo về chủ đề này.
Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết này về “SQL khóa ngoại” và tôi sẽ liên hệ lại với bạn.