[Tự Học SQL] Tìm Hiểu Về Khoá Chính(PRIMARY KEY), Khoá Ngoại ...
Có thể bạn quan tâm
🔥CHỌN LỌC TOP NHỮNG KHOÁ HỌC LẬP TRÌNH ONLINE NHIỀU NGƯỜI THEO HOC TẠI ĐÂY🔥
Bài này cafedev chia sẻ cho ace về cách tạo ràng buộc với khoá chính(PRIMARY KEY), khoá ngoại(FOREIGN KEY) của bảng trong SQL như thế nào?
Nội dung chính
- 1. Khoá chính(PRIMARY KEY) trong SQL
- 2. Khoá ngoại(FOREIGN KEY) trong SQL
- Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!
1. Khoá chính(PRIMARY KEY) trong SQL
Ràng buộc PRIMARY KEY xác định duy nhất từng của từng dữ liệu trong bảng.
Khóa chính phải chứa giá trị DUY NHẤT và không được chứa giá trị NULL.
Một bảng chỉ có thể có MỘT khóa chính và trong bảng, khóa chính này có thể bao gồm một hoặc nhiều cột (trường).
Ví dụ:
- SQL PRIMARY KEY trong CREATE TABLE
SQL sau tạo một KHÓA CHÍNH trên cột “ID” khi bảng “Persons” được tạo:
MySQL:
/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: cafedevn@gmail.com Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) );SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( ID int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int );Để cho phép đặt tên cho ràng buộc KHÓA CHÍNH và để xác định ràng buộc KHÓA CHÍNH trên nhiều cột, hãy sử dụng cú pháp SQL sau:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT PK_Person PRIMARY KEY (ID,LastName) );Lưu ý: Trong ví dụ trên chỉ có MỘT KHÓA CHÍNH (PK_Person). Tuy nhiên, GIÁ TRỊ của khóa chính được tạo thành từ HAI CỘT (ID + LastName).
- SQL PRIMARY KEY trong ALTER TABLE
Để tạo ràng buộc CHÍNH CHÍNH trên cột “ID” khi bảng đã được tạo, hãy sử dụng SQL sau:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD PRIMARY KEY (ID);Để cho phép đặt tên cho ràng buộc KHÓA CHÍNH(PRIMARY KEY) và để xác định ràng buộc KHÓA CHÍNH(PRIMARY KEY) trên nhiều cột, hãy sử dụng cú pháp SQL sau:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);Lưu ý: Nếu bạn sử dụng câu lệnh ALTER TABLE để thêm khóa chính, (các) cột khóa chính phải được khai báo không chứa giá trị NULL (khi bảng được tạo lần đầu tiên).
- Xoá PRIMARY KEY Constraint
Để loại bỏ ràng buộc Khoá CHÍNH, hãy sử dụng SQL sau:
MySQL:
ALTER TABLE Persons DROP PRIMARY KEY;SQL Server / Oracle / MS Access:
ALTER TABLE Persons DROP CONSTRAINT PK_Person;2. Khoá ngoại(FOREIGN KEY) trong SQL
KEY FOREIGN là một khóa ngoại dùng để liên kết hai bảng với nhau.
KHÓA NGOẠI là một trường (hoặc tập hợp các trường) trong một bảng tham chiếu đến KHÓA CHÍNH trong một bảng khác.
Bảng chứa khóa ngoại được gọi là bảng con và bảng chứa khóa ứng viên được gọi là bảng tham chiếu hoặc bảng cha.
Nhìn vào hai bảng sau:
Bảng Persons:
PersonID | LastName | FirstName | Age |
---|---|---|---|
1 | HOÁ | TINH | 30 |
2 | LAN | TƯỚNG | 23 |
3 | XUÂN | TÁ | 20 |
Bảng Orders:
OrderID | OrderNumber | PersonID |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
Lưu ý rằng cột “PersonID” trong bảng “Order” trỏ đến cột “PersonID” trong bảng “Person”.
Cột “PersonID” trong bảng “Person” là TỪ KHÓA CHÍNH() trong bảng “Person”.
Cột “PersonID” trong bảng “Đơn hàng” là một TỪ KHÓA NGOẠI TỆ trong bảng “Đơn hàng”.
Ràng buộc FOREIGN KEY được sử dụng để ngăn chặn các hành động phá hủy liên kết giữa các bảng.
Ràng buộc NGOẠI KHÓA cũng ngăn không cho dữ liệu không hợp lệ được chèn vào cột khóa ngoại, vì nó phải là một trong những giá trị có trong bảng mà nó trỏ tới.
- SQL FOREIGN KEY trong CREATE TABLE
SQL sau tạo một TỪ KHÓA NGOẠI trên cột “PersonID” khi bảng “Orders” được tạo:
MySQL:
CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) );SQL Server / Oracle / MS Access:
CREATE TABLE Orders ( OrderID int NOT NULL PRIMARY KEY, OrderNumber int NOT NULL, PersonID int FOREIGN KEY REFERENCES Persons(PersonID) );Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau:
MySQL / SQL Server / Oracle / MS Access:
/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: cafedevn@gmail.com Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID) REFERENCES Persons(PersonID) );- SQL FOREIGN KEY trong ALTER TABLE
Để tạo ràng buộc NGOẠI KHÓA trên cột “PersonID” khi bảng “Orders” đã được tạo, hãy sử dụng SQL sau:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders ADD CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);- Xoá FOREIGN KEY Constraint
Để loại bỏ ràng buộc NGOẠI KHÓA, hãy sử dụng SQL sau:
MySQL:
ALTER TABLE Orders DROP FOREIGN KEY FK_PersonOrder;SQL Server / Oracle / MS Access:
ALTER TABLE Orders DROP CONSTRAINT FK_PersonOrder;Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
- Group Facebook
- Fanpage
- Youtube
- Trang chủ
Chào thân ái và quyết thắng!
Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!
Từ khóa » Khóa Chính Primary Key Là Gì
-
[PostgreSQL] Định Nghĩa Và Quản Lý Khóa Chính - Primary Key
-
Khóa Chính PRIMARY KEY Trong SQL Server
-
Khóa Chính Primary Key Trong SQL Server - Freetuts
-
Khác Biệt Giữa Khóa Chính Và Khóa Ngoại Trong SQL - Viblo
-
Khóa Chính Là Gì? Thông Tin Khóa Chính Dành Cho Người Mới Tiếp Xúc ...
-
Khóa Chính Primary Key Là Gì
-
Khóa Chính Là Gì? Phân Biệt Khóa Chính Và Khóa Ngoại Trong SQL
-
(PRIMARY KEY) Tạo Khóa Chính Trong MySQL - Web Cơ Bản
-
SQL Server: Primary Key (Khóa Chính) | V1Study
-
Cách Sử Dụng Ràng Buộc PRIMARY KEY Trong SQL - BAC
-
Khóa Chính Primary Key Trong SQL Server - Freetuts
-
Primary Key (Khóa Chính) Là Gì?
-
Tạo Bảng Với CREATE TABLE Kiểu Dữ Liệu Cột Trong SQL
-
Thêm Hoặc Thay đổi Khóa Chính Của Bảng Trong Access