Khóa chính là gì

Các khoá thiết yếu với khóa ngoại là nhì loại buộc ràng rất có thể được áp dụng để tiến hành trọn vẹn tài liệu trong những bảng Squốc lộ Server và đây là hồ hết đối tượng người tiêu dùng cửa hàng tài liệu đặc biệt.

Bạn đang xem: Khóa chính là gì

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

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

1. Khóa đó là gì

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

Bên cạnh đó, nó còn dùng để làm tùy chỉnh thiết lập tình dục 1-n (xuất xắc ràng buộc tsi chiếu) giữa nhì table vào 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 tuyệt nhất. Và không đựng những cực hiếm Null.

Mỗi table nên chỉ có thể gồm một khóa chính, khóa chính có thể tạo thành từ khá nhiều 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 xem như nlỗi con trỏ trỏ cho tới khóa chủ yếu của table khác.

Nếu trường MaSV của table DiemSV được thực hiện để tạo thành ràng buộc tmê mẩn chiếu đến table HSSV, thông qua khóa chính là MaSV thì MaSV của table DiemSV được Call là khóa nước ngoài của bảng này. Đây cũng đó là nguyên nhân nhưng ta nói, khóa nước ngoài được coi như như con trỏ trởi cho tới khóa bao gồm.

Để hiểu rõ rộng về ý nghĩa thực hiện của khóa bao gồm, khóa nước ngoài họ hãy xét ví dụ sau: Giả sử các đại lý dữ liệu QLDiemSV gồm nhì table: HSSV với DiemSV nlỗi sau:

Table HSSV tất cả 6 field, trong số đó MaSV được lựa chọn làm cho khóa chủ yếu của table này.

*

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

*

do vậy, nhì table HSSV với DiemSV quan hệ nam nữ tài liệu với nhau thông qua field MaSV của mỗi table (đó là quan hệ 1 – n). Hay có thể nói rằng, buộc ràng tmê mẩn chiếu đã có được tạo ra giữa nhị table (từ bỏ table DiemSV mang đến table HSSV).

Với ràng buộc này thì, việc người sử dụng vô tình tuyệt cầm cố ý tàn phá những links sẽ bị ngăn chặn. Và, người tiêu dùng cũng tất yêu nhập lệ cột khóa ngoại một quý giá mà giá trị kia không xuất hiện sống cột khóa chủ yếu nhưng khóa này trỏ cho tới (thiết yếu nhập điểm cho 1 sinch viên, vào table DiemSV, cơ mà mã của họ không xuất hiện thêm ngơi nghỉ cột MaSV nghỉ ngơi table HSSV).

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

Để chế tạo ra khóa chủ yếu ngay trong khi tạo table ta hoàn toàn có thể thực hiện câu lệnh SQL 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 để chế tác table HSSV, mặt khác chỉ định và hướng dẫn field MaSV làm cho khóa chính đến nó.

Trong trường phù hợp khóa thiết yếu được thành lập và hoạt động từ nhiều field với ta bắt buộc khắc tên mang đến 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 bao gồm table này được Ra đời từ bỏ nhị field: MaSV và MaLop với thương hiệu của ràng buộc này là Ma.

Xem thêm: Ebook Vạn Dặm Hoa Đào Trong Mưa Hạ, Vạn Dặm Hoa Đào Trong Mưa Hạ

3.1 Tạo khóa bao gồm đến 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 ADD CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop)

Rõ ràng, trong trường vừa lòng này các field MaSV, MaLop bắt buộc đã có được knhị báo ràng buộc NOT NULL (trng Khi chế tạo 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. Thiết lập khóa ngoại

Để chế tạo ra khóa nước ngoài ngay lúc tạo nên table ta có thể sử dụng câu lệnh Squốc lộ 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 có 6 field, trong những số đó khóa đó là field STT cùng field khóa ngoại là MaSV. Table này chế tạo ra buộc ràng ttê mê chiếu mang lại 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))Lúc bắt buộc đặt tên cho buộc ràng khóa nước ngoài và khóa nước ngoài được hiện ra từ không ít field thì ta nên áp dụng 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 đang 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 cần đặt tên mang đến ràng buộc khóa nước ngoài và khóa nước ngoài được có mặt từ không ít 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 cực kỳ phổ cập trong các ngôi trường vừa lòng biến đổi thương hiệu của table, thương hiệu của field hoặc thêm/xóa các field vào một table nào kia. Vì vậy, chúng ta sẽ quay trở về câu lệnh này nghỉ ngơi những bài xích sau.

5. Bảng so sánh

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

6. Tổng kết

Chúng ta chỉ sử dụng các giải pháp bên trên để tạo khóa bao gồm trong MySquốc lộ và không chỉ có làm việc MySQL nhưng mà ngơi nghỉ Squốc lộ Server cũng có thể có cú pháp tương tự vì chưng chúng hồ hết sử dụng ngôn ngữ T-SQL.

Xem thêm: Giá Samsung A7 2018 Cũ Chính Hãng, Giá Rẻ, Mua Trả Góp 0% Lãi Suất

Đôi khi Lúc làm việc với những áp dụng website thì ta ít khi thực hiện khóa ngoại chính vì sẽ khá lừ đừ, vị vậy tín đồ ta đang cố gắng thiết kế CSDL làm sao về tối ưu để ko trường tồn khóa nước ngoài.


Chuyên mục: Blogs