Khóa Ngoại Là Gì

  -  

Các khoá chính cùng khóa nước ngoài là hai nhiều loại buộc ràng hoàn toàn có thể được thực hiện nhằm xúc tiến toàn diện dữ liệu trong số bảng Squốc lộ Server với đấy là các đối tượng người dùng cửa hàng tài liệu quan trọng đặc biệt.quý khách hàng vẫn xem: Khóa ngoại là gì

Trong Squốc lộ Server, bao gồm nhì khóa - khóa chính với khoá nước ngoài có lẽ kiểu như nhau, nhưng mà thực tế cả nhì các khác nhau về các bản lĩnh với hành động. Các khoá chủ yếu và khóa ngoại là hai các loại buộc ràng rất có thể được thực hiện nhằm thực thi toàn vẹn tài liệu trong những bảng Squốc lộ Server cùng đây là hồ hết đối tượng người sử dụng cửa hàng dữ liệu đặc biệt quan trọng.

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

Trong bài này, tôi mong mỏi share sự biệt lập ở chính giữa khóa chính cùng khoá ngoại.

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

Khóa bao gồm (hay buộc ràng khóa chính) được áp dụng nhằm định danh duy nhất mỗi record trong table của cơ sở dữ liệu.

Ngoài ra, nó còn dùng làm cấu hình thiết lập quan hệ nam nữ 1-n (giỏi ràng buộc tmê man chiếu) thân nhị table trong cửa hàng dữ liệu.

Dữ liệu (value) của field khóa chủ yếu đề nghị tất cả tính tốt nhất. Và không chứa các giá trị Null.

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

2. Khóa ngoại là gì

Khóa ngoại của một table được xem như nlỗi con trỏ trỏ tới khóa chính của table khác.

Nếu trường MaSV của table DiemSV được thực hiện để chế tạo ra ràng buộc tđê mê chiếu mang lại table HSSV, thông qua khóa chính là MaSV thì MaSV của table DiemSV được điện thoại tư vấn là khóa ngoại của bảng này. Đây cũng đó là lý do nhưng ta nói, khóa ngoại được coi như như bé trỏ trởi cho tới khóa thiết yếu.

Để làm rõ rộng về ý nghĩa sâu sắc sử dụng của khóa bao gồm, khóa nước ngoài chúng ta hãy xét ví dụ sau: Giả sử cửa hàng dữ liệu QLDiemSV gồm nhị table: HSSV cùng DiemSV như sau:

Table HSSV bao gồm 6 field, trong các số ấy MaSV được lựa chọn làm cho khóa chính của table này.


*

Table DiemSV bao gồm 6 field, trong các số đó STT là khóa chủ yếu và MaSV được lựa chọn có tác dụng khóa ngoại của table này.


*

vì thế, hai table HSSV và DiemSV quan hệ nam nữ tài liệu cùng nhau thông qua field MaSV của từng table (đây là quan hệ 1 – n). Hay có thể nói, ràng buộc tsay đắm chiếu đã làm được tạo thành thân hai table (từ table DiemSV cho table HSSV).

Với ràng buộc này thì, bài toán người sử dụng vô tình xuất xắc cố ý phá hủy những link sẽ bị ngăn ngừa. Và, người sử dụng cũng thiết yếu nhập vào cột khóa nước ngoài một giá trị nhưng mà quý hiếm đó không xuất hiện nghỉ ngơi cột khóa chính cơ mà khóa này trỏ cho tới (quan yếu nhập điểm cho một sinch viên, vào table DiemSV, nhưng mà mã của họ ko lộ diện ở cột MaSV ở table HSSV).

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

Để chế tác khóa chủ yếu ngay trong khi sản xuất table ta rất có thể thực hiện câu lệnh Squốc lộ Create Table nlỗi sau:

(MaSV varchar (8) NOT NULL,Holot varchar(20), Ten varchar(8),NgaySinch Date, MaLop varchar(8) NOT NULL,Lienhe varchar(11) NOT NULL,PRIMARY KEY (MaSV));Câu lệnh này dùng làm sinh sản table HSSV, đồng thời chỉ định field MaSV có tác dụng khóa bao gồm mang lại nó.

Trong trường hòa hợp khóa chủ yếu được thành lập từ nhiều field và ta nên đặt tên mang lại ràng buộc khóa này thì rất có thể thực hiện câu lệnh Create Table nlỗi sau:

3.1 Tạo khóa bao gồm đến table đang tạo

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

ALTER TABLE HSSV Địa chỉ cửa hàng PRIMARY KEY (MaSV)

Hoặc:

ALTER TABLE HSSV Địa chỉ cửa hàng CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop)

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

Xem thêm: Review Kinh Nghiệm Đi Chợ Đêm Đà Lạt : Kinh Nghiệm Mua Sắm, Ăn Gì, Đi Đâu?

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

Để chế tạo ra khóa ngoại ngay khi tạo table ta hoàn toàn có thể sử dụng câu lệnh SQL 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 bao gồm 6 field, trong số ấy khóa đó là field STT với field khóa ngoại là MaSV. Table này tạo nên buộc ràng tmê say chiếu cho 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))lúc yêu cầu viết tên mang lại ràng buộc khóa nước ngoài và khóa nước ngoài được hình thành từ rất nhiều field thì ta buộc phải thực hiện câu lệnh Create Table theo mô hình này.

4.1 Tạo khóa nước ngoài mang lại table đã tạo

Ví dụ:

REFERENCES HSSV(MaSV)Hoặc:

FOREIGN KEY (MaSV) REFERENCES HSSV(MaSV)Câu lệnh này được sử dụng vào ngôi trường hòa hợp đề nghị viết tên mang đến ràng buộc khóa ngoại cùng khóa ngoại được hiện ra từ nhiều field.

4.2 Xóa khóa ngoại

Ví dụ:

ALTER TABLE DiemSV DROPhường FOREIGN KEY Ma

Câu lệnh MySquốc lộ ALTER được thực hiện khôn cùng phổ biến trong số ngôi trường hòa hợp biến đổi thương hiệu của table, thương hiệu của field hoặc thêm/xóa những field vào một table nào kia. Vì vậy, bọn họ vẫn trở về câu lệnh này sinh hoạt những bài bác sau.

5. Bảng so sánh

Khóa chínhKhóa ngoại
Khóa chính xác định nhất một bạn dạng ghi vào bảng.Khóa nước ngoài là 1 ngôi trường trong bảng cùng là khóa chủ yếu trong một bảng không giống.
Khóa chủ yếu ko gật đầu đồng ý những cực hiếm trống rỗng.Khóa nước ngoài hoàn toàn có thể đồng ý các quý giá trống rỗng.
Theo khoác định, khoá đó là chỉ mục được đội và dữ liệu vào bảng các đại lý tài liệu được tổ chức triển khai theo lắp thêm tự của dãy 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. Bạn có thể trường đoản cú tạo thành một chỉ mục bên trên khoá ngoại.
Chúng ta chỉ rất có thể có một khóa bao gồm trong một bảng.Chúng ta rất có thể có không ít khoá nước ngoài trong một bảng.

Xem thêm: Hướng Dẫn Bạn Cách Đi Đến Khu Du Lịch Bò Cạp Vàng, Khám Phá Khu Du Lịch Sinh Thái Bọ Cạp Vàng

6. Tổng kết

Đôi khi Lúc làm việc với các áp dụng website thì ta ít khi thực hiện khóa ngoại bởi vì sẽ tương đối chậm trễ, vì chưng vậy fan ta vẫn nỗ lực thiết kế CSDL làm sao về tối ưu để ko trường tồn khóa nước ngoài.