Tạo Khóa Ngoại Trong Mysql Workbench

  -  

Các khoá chủ yếu và khóa ngoại là hai loại ràng buộc rất có thể được áp dụng để thực thi trọn vẹn dữ liệu trong các bảng SQL hệ thống và đây là những đối tượng người sử dụng cơ sở dữ liệu quan trọng.

Bạn đang xem: Tạo khóa ngoại trong mysql workbench

Trong SQL Server, tất cả hai khóa - khóa thiết yếu và khoá ngoại trong khi giống nhau, nhưng thực tiễn cả nhị đều khác biệt về những tính năng cùng hành vi. Những khoá thiết yếu và khóa ngoại là hai các loại ràng buộc hoàn toàn có thể được sử dụng để thực thi trọn vẹn dữ liệu trong những bảng SQL vps và đấy là những đối tượng người dùng cơ sở dữ liệu quan trọng.

Trong bài xích này, tôi muốn chia sẻ sự khác hoàn toàn chính thân khóa bao gồm và khoá ngoại.

1. Khóa đó là gì

Khóa chủ yếu (hay buộc ràng khóa chính) được áp dụng để định danh nhất mỗi record trong table của cửa hàng dữ liệu.

Ngoài ra, nó còn dùng để thiết lập cấu hình quan hệ 1-n (hay ràng buộc tham chiếu) giữa hai table trong đại lý dữ liệu.

Dữ liệu (value) của field khóa chính phải bao gồm tính duy nhất. Và không chứa các giá trị Null.

Mỗi table nên chỉ có thể có một khóa chính, khóa chính có thể tạo ra từ khá 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ư bé trỏ trỏ cho tới khóa bao gồm của table khác.

Nếu ngôi trường MaSV của table DiemSV được áp dụng để sản xuất ràng buộc tham chiếu đến table HSSV, thông qua khóa đó là MaSV thì MaSV của table DiemSV được call là khóa ngoại của bảng này. Đây cũng đó là lý vì mà ta nói, khóa ngoại được coi như như con trỏ trởi tới khóa chính.

Để nắm rõ hơn về ý nghĩa sử dụng của khóa chính, khóa ngoại chúng ta hãy xét ví dụ sau: mang sử cơ sở tài liệu QLDiemSV bao gồm hai table: HSSV với DiemSV như sau:

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

*

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

*

Như vậy, nhị table HSSV với DiemSV quan tiền hệ tài liệu với nhau thông qua field MaSV của từng table (đây là quan hệ tình dục 1 – n). Tuyệt nói cách khác, ràng buộc tham chiếu đã được tạo thành giữa nhì table (từ table DiemSV mang lại table HSSV).

Với ràng buộc này thì, việc người tiêu dùng vô tình hay cố gắng ý tiêu diệt các liên kết sẽ ảnh hưởng ngăn chặn. 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á bán trị nhưng mà giá trị kia không lộ diện ở cột khóa chính mà khóa này trỏ cho tới (không thể nhập điểm cho 1 sinh viên, vào table DiemSV, cơ mà mã của họ không mở ra ở cột MaSV sinh hoạt table HSSV).

3. Tùy chỉnh cấu hình khóa chính

Để sinh sản khóa chính ngay trong khi tạo table ta rất có thể sử 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 để tạo table HSSV, đồng thời hướng dẫn và chỉ định field MaSV có tác dụng khóa chính cho nó.

Trong trường đúng theo khóa chính được ra đời từ các field cùng ta đề nghị đặt tên mang lại ràng buộc khóa này thì hoàn toàn có thể sử dụng câu lệnh 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,CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop));Vậy khóa thiết yếu table này được thành lập và hoạt động từ hai field: MaSV và MaLop và tên của ràng buộc này là Ma.

Xem thêm: Hủy Liên Kết Adsense Với Youtube (Kèm Ảnh), Đóng Tài Khoản Adsense

3.1 sản xuất khóa bao gồm 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 địa chỉ CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop)

Rõ ràng, trong trường phù hợp này những field MaSV, MaLop đề xuất đã được khai báo ràng buộc NOT NULL (trng khi chế tác 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 DROP CONSTRAINT Ma

4. Tùy chỉnh cấu hình khóa ngoại

Để chế tạo ra khóa ngoại ngay lúc 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 thành table DiemSV tất cả 6 field, trong đó khóa đó là field STT với field khóa nước ngoài là MaSV. Table này tạo thành ràng buộc tham 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))Khi đề nghị đặt tên mang lại ràng buộc khóa ngoại với khóa nước ngoài được hình thành từ khá nhiều field thì ta phải sử dụng câu lệnh Create Table theo mô hình này.

4.1 chế tác khóa ngoại mang lại table sẽ 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 trong trường hợp buộc phải đặt tên mang đến ràng buộc khóa ngoại và khóa ngoại được hình thành từ khá nhiều field.

4.2 Xóa khóa ngoại

Ví dụ:

ALTER TABLE DiemSV DROP FOREIGN KEY Ma

Câu lệnh MySQL ALTER được áp dụng rất thông dụng trong các trường hợp đổi khác tên của table, thương hiệu của field hoặc thêm/xóa các field vào một table như thế nào đó. Vì chưng vậy, bọn họ sẽ quay trở về câu lệnh này ở những bài sau.

5. Bảng so sánh

Khóa chínhKhóa ngoại
Khóa chính xác định duy nhất một bạn dạng ghi vào bảng.Khóa ngoại là một trong 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 không gật đầu các giá trị rỗng.Khóa ngoại bao gồm thể chấp nhận nhiều cực hiếm rỗng.
Theo mặc định, khoá chính là chỉ mục được đội và tài liệu trong bảng cơ sở tài liệu được tổ chức triển khai theo máy tự của dãy chỉ mục nhóm.Khóa ngoại không auto tạo ra một chỉ mục, team hoặc không nhóm. Bạn có thể tự tạo nên một chỉ mục trên khoá ngoại.
Chúng ta chỉ hoàn toàn có thể có một khóa thiết yếu trong một bảng.Chúng ta bao gồm thể có khá nhiều khoá ngoại trong một bảng.

6. Tổng kết

Chúng ta chỉ sử dụng những cách bên trên để chế tác khóa thiết yếu trong MySQL và không chỉ có làm việc MySQL cơ mà ở SQL Server cũng đều có cú pháp tựa như vì chúng phần đa sử dụng ngôn từ T-SQL.

Xem thêm: Kiểm Tra Xem Thư Đã Gửi Trong Outlook 2013, Xem Thư Đã Gửi Trong Outlook 2013

Thông hay khi thao tác với các ứng dụng website thì ta ít khi thực hiện khóa ngoại chính vì sẽ cực kỳ chậm, bởi vì vậy người ta sẽ cố gắng thiết kế CSDL làm thế nào tối ưu nhằm không mãi mãi khóa ngoại.