Khoa Ngoại Là Gì

Các khoá thiết yếu với khóa nước ngoài là nhì nhiều loại ràng buộc hoàn toàn có thể được sử dụng nhằm thực hiện toàn vẹn dữ liệu trong các bảng Squốc lộ Server cùng đấy là gần như đối tượng người sử dụng cơ sở dữ liệu đặc biệt quan trọng.

Bạn đang xem: Khoa ngoại là gì

Trong Squốc lộ Server, bao gồm nhị khóa - khóa chính và khoá ngoại dường như như thể nhau, nhưng lại thực tế cả nhì các khác biệt về những kĩ năng cùng hành động. Các khoá thiết yếu cùng khóa ngoại là nhị nhiều loại ràng buộc hoàn toàn có thể được thực hiện để thực thi toàn vẹn dữ liệu trong số bảng Squốc lộ Server và đây là các đối tượng các đại lý tài liệu đặc biệt.

Trong bài này, tôi mong muốn chia sẻ sự khác biệt ở trung tâm khóa bao gồm và khoá nước ngoài.

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

Khóa chính (tuyệt buộc ràng khóa chính) được thực hiện để định danh tuyệt nhất mỗi record vào table của các đại lý dữ liệu.

Hình như, nó còn dùng để thiết lập quan hệ nam nữ 1-n (tuyệt buộc ràng ttê mê chiếu) thân nhị table trong các đại lý tài liệu.

Dữ liệu (value) của field khóa chính đề xuất gồm tính duy nhất. Và ko đựng những giá trị Null.

Mỗi table nên có thể tất cả một khóa chính, khóa bao gồm có thể tạo nên 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ỏng bé trỏ trỏ cho tới khóa chính của table không giống.

Nếu trường MaSV của table DiemSV được sử dụng nhằm sinh sản ràng buộc tđam mê chiếu mang lại table HSSV, trải qua khóa chính là MaSV thì MaSV của table DiemSV được gọi là khóa nước ngoài của bảng này. Đây cũng chính là nguyên do nhưng ta nói, khóa nước ngoài được xem như như bé trỏ trởi cho tới khóa chủ yếu.

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

Table HSSV có 6 field, trong những số ấy MaSV được lựa chọn có tác dụng khóa thiết yếu của table này.

*

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

*

Vậy nên, nhì table HSSV với DiemSV tình dục tài liệu cùng nhau trải qua field MaSV của mỗi table (đấy là quan hệ nam nữ 1 – n). Hay nói theo cách khác, buộc ràng tsi mê chiếu đã được sinh sản giữa hai table (từ table DiemSV đến table HSSV).

Với buộc ràng này thì, vấn đề người sử dụng vô tình tốt thế ý hủy diệt những liên kết sẽ ảnh hưởng ngăn ngừa. Và, người sử dụng cũng quan trọng nhập vào cột khóa nước ngoài một quý giá mà lại quý hiếm kia ko lộ diện làm việc cột khóa chủ yếu mà lại khóa này trỏ cho tới (quan yếu nhập điểm cho 1 sinc viên, vào table DiemSV, cơ mà mã của họ ko mở ra sống cột MaSV sinh hoạt table HSSV).

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

Để tạo thành khóa chính ngay trong lúc sinh sản table ta có thể thực hiện câu lệnh SQL Create Table nhỏng 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 để tạo ra table HSSV, đôi khi chỉ định field MaSV làm khóa thiết yếu mang đến nó.

Trong trường hợp khóa bao gồm được ra đời từ khá nhiều field với ta đề xuất viết tên mang đến ràng buộc khóa này thì hoàn toàn có thể áp dụng câu lệnh Create Table nhỏng sau:

(MaSV varchar (8) NOT NULL,Holot varchar(20), Ten varchar(8),NgaySinc DATE, MaLop varchar(8) NOT NULL,Lienhe varchar(11) NOT NULL,CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop));Vậy khóa chính table này được ra đời từ bỏ nhì field: MaSV và MaLop và tên của ràng buộc này là Ma.

Xem thêm: Freeware Là Gì ? Định Nghĩa Và Giải Thích Ý Nghĩa Định Nghĩa Và Giải Thích Ý Nghĩa

3.1 Tạo khóa thiết yếu mang lại table sẽ tạo

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

ALTER TABLE HSSV ADD PRIMARY KEY (MaSV)

Hoặc:

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

Rõ ràng, vào trường phù hợp này các field MaSV, MaLop bắt buộc đã làm được knhì báo ràng buộc NOT NULL (trng lúc tạo thành table).

3.2 Xóa khóa chính

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

ALTER TABLE HSSV DROP. PRIMARY KEY;

Hoặc:

ALTER TABLE HSSV DROPhường CONSTRAINT Ma

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

Để tạo thành khóa ngoại ngay trong khi tạo nên table ta hoàn toàn có thể thực hiện câu lệnh SQL Create Table nlỗi 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ố ấy khóa chính là field STT cùng field khóa nước ngoài là MaSV. Table này chế tác buộc ràng tmê say chiếu mang lại 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 yêu cầu viết tên mang lại buộc ràng khóa ngoại với khóa ngoại được hiện ra từ nhiều field thì ta yêu cầu thực hiện câu lệnh Create Table theo hình thức này.

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

Ví dụ:

REFERENCES HSSV(MaSV)Hoặc:

FOREIGN KEY (MaSV) REFERENCES HSSV(MaSV)Câu lệnh này được áp dụng vào trường hợp yêu cầu đánh tên cho 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.

4.2 Xóa khóa ngoại

Ví dụ:

ALTER TABLE DiemSV DROPhường FOREIGN KEY Ma

Câu lệnh MySQL ALTER được áp dụng hết sức thông dụng trong các trường thích hợp thay đổi tên của table, thương hiệu của field hoặc thêm/xóa các field trong một table làm sao đó. Vì vậy, bọn họ sẽ quay lại câu lệnh này sinh hoạt những 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 tốt nhất một phiên bản ghi vào bảng.Khóa ngoại là 1 trong trường trong bảng cùng là khóa chính vào một bảng không giống.
Khóa bao gồm không gật đầu các cực hiếm trống rỗng.Khóa ngoại rất có thể đồng ý những cực hiếm rỗng.
Theo khoác định, khoá đó là chỉ mục được đội với tài liệu vào bảng các đại lý dữ liệu được tổ chức theo sản phẩm từ của dãy chỉ mục team.Khóa nước ngoài không tự động hóa tạo ra một chỉ mục, đội hoặc không đội. Quý Khách có thể trường đoản cú tạo nên một chỉ mục bên trên khoá ngoại.
Chúng ta chỉ rất có thể bao gồm một khóa chủ yếu trong một bảng.Chúng ta hoàn toàn có thể có rất nhiều khoá nước ngoài vào một bảng.

6. Tổng kết

Chúng ta chỉ sử dụng những phương pháp bên trên nhằm sản xuất khóa thiết yếu trong MySquốc lộ với không chỉ là bao gồm sống MySQL cơ mà sinh hoạt SQL Server cũng có cú pháp giống như do chúng phần nhiều áp dụng ngữ điệu T-SQL.

thường thì khi thao tác cùng với các áp dụng website thì ta hiếm khi thực hiện khóa nước ngoài bởi vì sẽ rất chậm, bởi vì vậy bạn ta sẽ nỗ lực thi công cơ sở dữ liệu làm thế nào về tối ưu để không tồn tại khóa ngoại.