Khóa chính khóa ngoại trong sql

     

Các khoá chủ yếu và khóa ngoại là nhì loại ràng buộc có thể được sử dụng nhằm xúc tiến toàn diện tài liệu trong các bảng Squốc lộ Server và đây là đầy đủ đối tượng người sử dụng cửa hàng tài liệu quan trọng đặc biệt.

Bạn đang xem: Khóa chính khóa ngoại trong sql

Trong Squốc lộ Server, có nhì khóa - khóa chủ yếu với khoá nước ngoài hình như kiểu như nhau, nhưng mà thực tiễn cả hai đầy đủ không giống nhau về các khả năng với hành động. Các khoá bao gồm và khóa ngoại là nhị loại buộc ràng hoàn toàn có thể được sử dụng để tiến hành toàn diện tài liệu trong số bảng Squốc lộ Server với đó là rất nhiều đối tượng các đại lý tài liệu đặc trưng.

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

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

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

Trong khi, nó còn dùng để làm tùy chỉnh quan hệ nam nữ 1-n (xuất xắc ràng buộc tđê mê chiếu) thân nhì table trong cơ sở dữ liệu.

Dữ liệu (value) của field khóa bao gồm nên tất cả tính tốt nhất. Và ko chứa những cực hiếm Null.

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

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

Khóa nước ngoài của một table được coi như như nhỏ trỏ trỏ cho tới khóa chủ yếu của table không giống.

Nếu ngôi trường MaSV của table DiemSV được sử dụng để sản xuất ràng buộc tđê mê chiếu mang đến table HSSV, thông qua khóa đó là MaSV thì MaSV của table DiemSV được Hotline là khóa ngoại của bảng này. Đây cũng đó là lý do nhưng mà ta nói, khóa nước ngoài được coi như nlỗi bé trỏ trởi cho tới khóa thiết yếu.

Để làm rõ hơn về ý nghĩa sâu sắc áp dụng của khóa thiết yếu, khóa ngoại chúng ta hãy xét ví dụ sau: Giả sử đại lý tài liệu QLDiemSV tất cả hai table: HSSV cùng DiemSV như sau:

Table HSSV tất cả 6 field, trong đó MaSV được lựa chọn làm khóa bao gồm của table này.

*

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

*

Bởi vậy, hai table HSSV với DiemSV dục tình tài liệu với nhau thông qua field MaSV của mỗi table (đấy là tình dục 1 – n). Hay có thể nói rằng, buộc ràng tđắm say chiếu đã làm được tạo ra thân nhì table (trường đoản cú table DiemSV mang lại table HSSV).

Với buộc ràng này thì, bài toán người tiêu dùng vô tình xuất xắc cầm cố ý phá hủy các links có khả năng sẽ bị ngăn chặn. Và, người sử dụng cũng không thể nhập lệ cột khóa nước ngoài một cực hiếm nhưng mà cực hiếm kia ko lộ diện ở cột khóa chính mà khóa này trỏ tới (cấp thiết nhập điểm cho 1 sinh viên, vào table DiemSV, nhưng mà mã của mình ko xuất hiện thêm sống cột MaSV ở table HSSV).

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

Để sản xuất khóa chủ yếu ngay khi tạo table ta rất 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),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 tạo thành table HSSV, đôi khi chỉ định và hướng dẫn field MaSV làm khóa bao gồm mang lại nó.

Trong trường đúng theo khóa chính được Thành lập và hoạt động từ rất nhiều field cùng ta đề nghị khắc tên cho ràng buộc khóa này thì rất 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),NgaySinch 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ự nhị field: MaSV cùng MaLop và thương hiệu của buộc ràng này là Ma.

Xem thêm: Đặc Điểm Phong Cách Nghệ Thuật Của Nhà Văn, Phong Cách Nghệ Thuật Là Gì

3.1 Tạo khóa chính cho table vẫn tạo

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

ALTER TABLE HSSV Showroom PRIMARY KEY (MaSV)

Hoặc:

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

Rõ ràng, vào ngôi trường đúng theo này các field MaSV, MaLop bắt buộc đã 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 DROPhường. PRIMARY KEY;

Hoặc:

ALTER TABLE HSSV DROP CONSTRAINT Ma

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

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

4.1 Tạo khóa ngoại cho table sẽ 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 hòa hợp yêu cầu khắc tên mang lại ràng buộc khóa ngoại với khóa ngoại được xuất hiện từ khá 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 vô cùng phổ biến trong những ngôi trường đúng theo biến đổi tên của table, tên của field hoặc thêm/xóa các field trong một table nào kia. Vì vậy, bọn họ đang quay trở về câu lệnh này ở các bài sau.

5. Bảng so sánh

Khóa chínhKhóa ngoại
Khóa đúng đắn định tốt nhất một bản ghi vào bảng.Khóa ngoại là một trường vào bảng với là khóa chủ yếu vào một bảng không giống.
Khóa bao gồm ko đồng ý những giá trị trống rỗng.Khóa ngoại hoàn toàn có thể gật đầu các cực hiếm trống rỗng.
Theo khoác định, khoá đó là chỉ mục được team với dữ liệu trong bảng cơ sở tài liệu được tổ chức theo trang bị tự của dãy chỉ mục đội.Khóa nước ngoài không tự động hóa tạo nên một chỉ mục, team hoặc ko team. Quý khách hàng có thể từ bỏ sinh sả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 rất có thể có không ít 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 để sinh sản khóa chủ yếu trong MySquốc lộ và không chỉ bao gồm nghỉ ngơi MySquốc lộ cơ mà ngơi nghỉ Squốc lộ Server cũng đều có cú pháp giống như bởi bọn chúng gần như áp dụng ngữ điệu T-Squốc lộ.

Đôi khi Lúc thao tác làm việc cùng với các ứng dụng website thì ta ít khi thực hiện khóa nước ngoài bởi vì sẽ khá chậm trễ, bởi vậy người ta vẫn cố gắng xây đắp DataBase làm sao về tối ưu để không mãi sau khóa nước ngoài.