Cách tạo khóa ngoại trong sql, khác biệt giữa khóa chính và khóa ngoại trong sql

 - 

Các khoá chủ yếu cùng khóa ngoại là hai một số loại ràng buộc hoàn toàn có thể được thực hiện để triển khai trọn vẹn dữ liệu trong số bảng Squốc lộ Server và đấy là số đông đối tượng đại lý dữ liệu đặc biệt quan trọng.

Bạn đang xem: Cách tạo khóa ngoại trong sql, khác biệt giữa khóa chính và khóa ngoại trong sql

Trong SQL Server, bao gồm nhì khóa - khóa thiết yếu và khoá nước ngoài có lẽ kiểu như nhau, nhưng mà thực tế cả hai hầu như khác nhau về những công dụng và hành vi. Các khoá thiết yếu và khóa ngoại là nhị loại ràng buộc có thể được thực hiện để triển khai toàn vẹn tài liệu trong những bảng SQL Server với đấy là phần lớn đối tượng người sử dụng các đại lý tài liệu quan trọng.

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

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

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

Trong khi, nó còn dùng để làm thiết lập quan hệ 1-n (xuất xắc buộc ràng tmê say chiếu) giữa nhị table trong đại lý tài liệu.

Dữ liệu (value) của field khóa bao gồm phải tất cả tính tốt nhất. Và ko cất những quý giá Null.

Mỗi table nên chỉ có thể có một khóa chủ yếu, khóa chính rất có thể tạo thành từ không ít field của table.

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

Khóa nước ngoài của một table được coi như nlỗi con trỏ trỏ cho tới khóa thiết yếu của table khác.

Nếu trường MaSV của table DiemSV được áp dụng để tạo ra buộc ràng tmê man 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 ngoại của bảng này. Đây cũng chính là nguyên do cơ mà 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 áp dụng của khóa chính, khóa ngoại họ hãy xét ví dụ sau: Giả sử các đại lý dữ liệu QLDiemSV tất cả nhì table: HSSV cùng DiemSV nlỗi sau:

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

*

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

*

do đó, hai table HSSV cùng DiemSV dục tình tài liệu với nhau thông qua field MaSV của mỗi table (đấy là quan hệ nam nữ 1 – n). Hay nói theo một cách khác, ràng buộc tsay đắm chiếu đã có tạo ra giữa hai table (trường đoản cú table DiemSV đến table HSSV).

Với ràng buộc này thì, việc người tiêu dùng vô tình tuyệt nắm ý hủy hoại những link có khả năng sẽ bị ngăn ngừa. Và, người tiêu dùng cũng tất yêu nhtràn vào cột khóa nước ngoài một quý giá mà lại cực hiếm đó ko lộ diện ở cột khóa chính nhưng khóa này trỏ tới (cần thiết nhập điểm cho 1 sinc viên, vào table DiemSV, mà lại mã của họ ko lộ diện nghỉ ngơi cột MaSV sinh sống table HSSV).

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

Để chế tạo khóa chủ yếu ngay khi tạo ra table ta rất có thể áp dụng câu lệnh Squốc lộ Create Table nlỗi 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 để làm sinh sản table HSSV, mặt khác chỉ định field MaSV làm cho khóa thiết yếu mang lại nó.

Trong trường đúng theo khóa chủ yếu được Thành lập từ rất nhiều field và ta buộc phải viết tên mang lại ràng buộc khóa này thì có thể thực hiện câu lệnh Create Table nhỏng 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 chủ yếu table này được Thành lập từ bỏ nhị field: MaSV và MaLop cùng tên của buộc ràng này là Ma.

Xem thêm: Tên Con Trai Hay 2017 - Đặt Tên Con Năm 2017 Theo Phong Thủy Ngũ Hành

3.1 Tạo khóa chính mang lại table sẽ 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ỉ cửa hàng CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop)

Rõ ràng, vào trường thích hợp này các field MaSV, MaLop cần đã làm được knhị báo ràng buộc NOT NULL (trng lúc chế tạo ra 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 ra khóa ngoại ngay trong lúc chế tạo ra table ta rất có thể sử dụng câu lệnh Squốc lộ Create Table nhỏng 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 có 6 field, trong những số ấy khóa chính là field STT và field khóa nước ngoài là MaSV. Table này chế tạo ràng buộc tham mê chiếu đến table HSSV trải 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 khắc tên mang lại ràng buộc khóa ngoại cùng khóa nước ngoài được hiện ra từ nhiều field thì ta nên áp 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 sử dụng vào ngôi trường hợp bắt buộc khắc tên mang đến buộc ràng khóa ngoại với khóa nước ngoài được xuất hiện 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 siêu thông dụng trong những trường thích hợp chuyển đổi 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ì vậy, chúng ta vẫn trở lại câu lệnh này sinh hoạt các bài xích sau.

5. Bảng so sánh

Khóa chínhKhóa ngoại
Khóa đúng chuẩn định nhất một bạn dạng ghi trong bảng.Khóa nước ngoài là một trong ngôi trường vào bảng cùng là khóa chủ yếu vào một bảng không giống.
Khóa chủ yếu ko đồng ý các cực hiếm rỗng.Khóa nước ngoài hoàn toàn có thể chấp nhận nhiều quý hiếm rỗng.
Theo khoác định, khoá chính là chỉ mục được team và dữ liệu vào bảng cửa hàng dữ liệu được tổ chức triển khai theo sản phẩm trường đoản cú của dãy chỉ mục team.Khóa nước ngoài không tự động tạo nên một chỉ mục, đội hoặc ko nhóm. Quý khách hàng hoàn toàn có thể từ bỏ sản xuất một chỉ mục bên trên khoá ngoại.
Chúng ta chỉ có thể gồm một khóa chính vào một bảng.Chúng ta rất có thể có nhiều khoá ngoại vào một bảng.

6. Tổng kết

Chúng ta chỉ thực hiện các biện pháp trên để tạo nên khóa thiết yếu vào MySQL cùng không chỉ có sinh sống MySQL nhưng mà sinh hoạt Squốc lộ Server cũng có cú pháp tương tự như bởi vì chúng đa số áp dụng ngôn từ T-SQL.

Xem thêm: Thái Ất Tử Vi Chùa Khánh Anh 2016, Thái Ất Tử Vi Năm Bính Thân 2016

thường thì khi làm việc cùng với các vận dụng web thì ta ít khi sử dụng khóa ngoại bởi vì sẽ tương đối chậm trễ, vì vậy tín đồ ta sẽ nỗ lực kiến thiết cơ sở dữ liệu làm thế nào về tối ưu để không trường tồn khóa nước ngoài.