KHÓA NGOẠI LÀ GÌ

Các khoá thiết yếu với khóa nước ngoài là nhì loại ràng buộc rất có thể được thực hiện nhằm thực thi toàn diện tài liệu trong những bảng SQL Server và đấy là hầu hết đối tượng người sử dụng các đại lý dữ liệu quan trọng.quý khách đang xem: Khóa ngoại là gì

Trong Squốc lộ Server, có nhì khóa - khóa thiết yếu và khoá ngoại giống như giống nhau, tuy vậy thực tiễn cả nhị đầy đủ không giống nhau về các anh tài và hành vi. Các khoá bao gồm và khóa nước ngoài là nhì loại ràng buộc hoàn toàn có thể được thực hiện để tiến hành trọn vẹn dữ liệu trong những bảng Squốc lộ Server cùng đó là phần đa đối tượng người dùng các đại lý dữ liệu quan trọng đặc biệt.

Bạn đang xem: Khóa ngoại là gì

Trong bài xích này, tôi ao ước chia sẻ sự biệt lập ở chính giữa khóa thiết yếu và khoá nước ngoài.

1. Khóa chính là gì

Khóa thiết yếu (tuyệt buộc ràng khóa chính) được sử dụng để định danh độc nhất từng record vào table của cơ sở tài liệu.

Ngoài ra, nó còn dùng để làm tùy chỉnh quan hệ tình dục 1-n (giỏi buộc ràng tham chiếu) thân nhì table vào cửa hàng dữ liệu.

Dữ liệu (value) của field khóa chủ yếu đề xuất tất cả tính duy nhất. Và không đựng những quý hiếm Null.

Mỗi table nên có thể gồm một khóa thiết yếu, khóa chủ yếu có thể tạo thành từ nhiều field của table.

2. Khóa nước ngoài là gì

Khóa ngoại của một table được xem như nhỏ trỏ trỏ tới khóa chủ yếu của table khác.

Nếu ngôi trường MaSV của table DiemSV được áp dụng nhằm tạo ra ràng buộc tmê say chiếu đến table HSSV, thông qua khóa đó là MaSV thì MaSV của table DiemSV được Gọi là khóa ngoại của bảng này. Đây cũng đó là nguyên nhân cơ mà ta nói, khóa nước ngoài được coi như nhỏng nhỏ trỏ trởi cho tới khóa chủ yếu.

Để hiểu rõ hơn về ý nghĩa sâu sắc thực hiện của khóa thiết yếu, khóa nước ngoài họ hãy xét ví dụ sau: Giả sử cửa hàng dữ liệu QLDiemSV bao gồm hai table: HSSV và DiemSV nhỏng sau:

Table HSSV bao gồm 6 field, trong các số đó MaSV được lựa chọn làm khóa thiết yếu của table này.


*

Table DiemSV có 6 field, trong các số ấy STT là khóa bao gồm và MaSV được lựa chọn làm khóa nước ngoài của table này.


*

Bởi vậy, hai table HSSV cùng DiemSV dục tình tài liệu cùng nhau thông qua field MaSV của từng table (đấy là quan hệ tình dục 1 – n). Hay nói cách khác, ràng buộc tmê say chiếu đã được chế tạo ra giữa nhị table (trường đoản cú table DiemSV cho table HSSV).

Với buộc ràng này thì, việc người tiêu dùng vô tình giỏi vậy ý tàn phá những liên kết sẽ bị ngăn ngừa. Và, người tiêu dùng cũng quan trọng nhập vào cột khóa nước ngoài một quý hiếm nhưng mà quý hiếm đó không lộ diện sinh sống cột khóa bao gồm nhưng mà khóa này trỏ cho tới (cần yếu nhập điểm cho một sinch viên, vào table DiemSV, cơ mà mã của họ không mở ra sống cột MaSV sinh hoạt table HSSV).

3. Thiết lập khóa chính

Để tạo nên khóa bao gồm ngay trong lúc chế tạo ra table ta rất có thể áp dụng câu lệnh SQL Create Table như sau:

(MaSV varchar (8) NOT NULL,Holot varchar(20), Ten varchar(8),NgaySinh Date, MaLop varchar(8) NOT NULL,Lienhe varchar(11) NOT NULL,PRIMARY KEY (MaSV));Câu lệnh này dùng để sinh sản table HSSV, đồng thời chỉ định field MaSV làm khóa chủ yếu cho nó.

Trong trường hợp khóa chính được thành lập từ nhiều field với ta yêu cầu khắc tên cho ràng buộc khóa này thì rất có thể áp dụng câu lệnh Create Table nhỏng sau:

3.1 Tạo khóa thiết yếu cho table vẫn tạo

Sử dụng câu lệnh sau:

ALTER TABLE HSSV Địa Chỉ PRIMARY KEY (MaSV)

Hoặc:

ALTER TABLE HSSV ADD CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop)

Rõ ràng, trong trường thích hợp này các field MaSV, MaLop buộc phải đã làm được khai báo ràng buộc NOT NULL (trng Khi tạo ra table).

Xem thêm: Kofi Annan Là Ai - Ceremony In The Honour Of Former Un Secretary

3.2 Xóa khóa chính

Sử dụng câu lệnh sau:

ALTER TABLE HSSV DROPhường PRIMARY KEY;

Hoặc:

ALTER TABLE HSSV DROPhường. CONSTRAINT Ma

4. Thiết lập khóa ngoại

Để tạo khóa ngoại ngay trong khi chế tạo table ta hoàn toàn có thể sử dụng câu lệnh Squốc lộ Create Table như sau:

(STT INT NOT NULL AUTO_INCREMENT,MaSV varchar(8) NOT NULL,MonHoc varchar(6) NOT NULL,HKI, HKII, ĐTB_Nam INT,PRIMARY KEY (STT),FOREIGN KEY (MaSV) REFERENCES HSSV(MaSV))Câu lệnh này: Tạo table DiemSV tất cả 6 field, trong số đó khóa đó là field STT và field khóa ngoại là MaSV. Table này chế tác buộc ràng ttê mê chiếu đến table HSSV thông qua field MaSV.

Dạng khác:

(STT INT NOT NULL AUTO_INCREMENT,MaSV varchar(8) NOT NULL,MonHoc varchar(6) NOT NULL,HKI, HKII, ĐTB_Nam INT,PRIMARY KEY (STT),CONSTRAINT Ma FOREIGN KEY (MaSV) REFERENCES HSSV(MaSV))Khi đề nghị đánh tên đến ràng buộc khóa nước ngoài với khóa nước ngoài được ra đời từ rất nhiều field thì ta phải sử dụng câu lệnh Create Table theo phương thức này.

4.1 Tạo khóa ngoại đến table vẫn tạo

Ví dụ:

REFERENCES HSSV(MaSV)Hoặc:

FOREIGN KEY (MaSV) REFERENCES HSSV(MaSV)Câu lệnh này được thực hiện vào trường đúng theo nên đặt tên mang lại ràng buộc khóa ngoại và khóa nước ngoài được có mặt từ rất nhiều field.

4.2 Xóa khóa ngoại

Ví dụ:

ALTER TABLE DiemSV DROP FOREIGN KEY Ma

Câu lệnh MySquốc lộ ALTER được sử dụng cực kỳ thịnh hành trong những ngôi trường hòa hợp đổi khác thương hiệu của table, tên của field hoặc thêm/xóa những field vào một table nào kia. Vì vậy, họ đã trở lại câu lệnh này sống các bài xích sau.

5. Bảng so sánh

Khóa chínhKhóa ngoại
Khóa chính xác định tuyệt nhất một bạn dạng ghi vào bảng.Khóa ngoại là 1 trong những ngôi trường trong bảng và là khóa thiết yếu trong một bảng khác.
Khóa bao gồm ko đồng ý các quý hiếm trống rỗng.Khóa nước ngoài rất có thể chấp nhận các quý giá trống rỗng.
Theo mặc định, khoá đó là chỉ mục được team với dữ liệu vào bảng các đại lý dữ liệu được tổ chức theo vật dụng trường đoản cú của hàng chỉ mục đội.Khóa ngoại không tự động hóa tạo ra một chỉ mục, nhóm hoặc không team. quý khách hàng rất có thể tự tạo thành một chỉ mục bên trên khoá nước ngoài.
Chúng ta chỉ rất có thể tất cả một khóa thiết yếu trong một bảng.Chúng ta rất có thể có rất nhiều khoá nước ngoài trong một bảng.

6. Tổng kết

Thông thường Lúc thao tác cùng với những áp dụng web thì ta ít khi sử dụng khóa ngoại chính vì sẽ rất chậm rì rì, vị vậy tín đồ ta đã cố gắng xây cất DataBase làm thế nào tối ưu nhằm ko mãi mãi khóa ngoại.