Khoá là gì khoá chính là gì

     

Các khoá chủ yếu và khóa ngoại là hai nhiều loại ràng buộc rất có thể được thực hiện để 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 tiêu dùng cơ sở dữ liệu quan trọng.

Bạn đang xem: Khoá là gì khoá chính là gì

Trong SQL Server, gồm hai khóa - khóa thiết yếu và khoá ngoại dường như giống nhau, nhưng thực tiễn cả hai đều khác biệt về các tính năng và hành vi. Các khoá chủ yếu và khóa ngoại là hai nhiều loại ràng buộc hoàn toàn có thể được áp dụng để thực thi toàn vẹn dữ liệu trong những bảng SQL hệ thống 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ự biệt lập chính thân khóa chủ yếu và khoá ngoại.

1. Khóa đó là gì

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

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

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

Mỗi table nên có thể có một khóa chính, khóa chính hoàn toàn có thể tạo ra từ 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ư bé trỏ trỏ tới khóa chủ yếu của table khác.

Nếu ngôi trường MaSV của table DiemSV được thực hiện để chế tác ràng buộc tham chiếu mang lại table HSSV, thông 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à lý vày mà ta nói, khóa ngoại được xem như bé trỏ trởi tới khóa chính.

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

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

*

Table DiemSV gồm 6 field, trong đó 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.

*

Như vậy, nhì table HSSV cùng DiemSV quan tiền hệ tài liệu với nhau trải qua field MaSV của từng table (đây là quan hệ giới tính 1 – n). Hay nói giải pháp khác, ràng buộc tham chiếu sẽ được chế tạo ra giữa nhì table (từ table DiemSV đến table HSSV).

Với buộc ràng này thì, việc người sử dụng vô tình hay vậy ý hủy hoại các liên kết sẽ ảnh hưởng ngăn chặn. Và, người tiêu dùng cũng cần yếu nhập vào cột khóa nước ngoài một giá trị nhưng giá trị kia không xuất hiện ở cột khóa chủ yếu mà khóa này trỏ 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 xuất hiện ở cột MaSV nghỉ ngơi table HSSV).

3. Tùy chỉnh thiết lập khóa chính

Để chế tác khóa chính ngay trong lúc 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 chỉ định và hướng dẫn field MaSV có tác dụng khóa chủ yếu cho nó.

Trong trường hòa hợp khóa chủ yếu được thành lập và hoạt động từ các field và ta phải đặt tên đến ràng buộc khóa này thì rất 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 chính table này được thành lập từ hai field: MaSV và MaLop với tên của buộc ràng này là Ma.

Xem thêm: Giảm Độ Cong Sinh Lý Cột Sống Cổ Mất Đường Cong Sinh Lý, Mất Đường Cong Cột Sống Thắt Lưng

3.1 chế tạo khóa chính cho table đang tạo

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

ALTER TABLE HSSV showroom PRIMARY KEY (MaSV)

Hoặc:

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

Rõ ràng, vào trường phù hợp này những field MaSV, MaLop yêu cầu đã được khai báo buộc ràng NOT NULL (trng khi 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. Tùy chỉnh khóa ngoại

Để tạo thành khóa ngoại ngay trong khi tạo table ta 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: sản xuất table DiemSV 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 tạo ra ràng buộc tham chiếu mang đế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 nên đặt tên mang đến ràng buộc khóa ngoại với khóa nước ngoài được hình thành từ rất nhiều field thì ta phải áp dụng câu lệnh Create Table theo hình thức này.

4.1 chế tác khóa ngoại cho table đang 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 lại ràng buộc khóa ngoại cùng khóa nước ngoài được hình thành từ 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 thực hiện rất thông dụng trong những trường hợp biến hóa 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 đó. Vị vậy, chúng ta sẽ trở lại 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 đúng mực định nhất một bạn dạng ghi trong bảng.Khóa ngoại là một trong trường trong bảng với là khóa chủ yếu trong một bảng khác.
Khóa bao gồm không gật đầu đồng ý các giá trị rỗng.Khóa ngoại gồm thể chấp nhận nhiều quý hiếm rỗng.
Theo mang định, khoá đó là chỉ mục được team và tài liệu trong bảng cơ sở dữ liệu được tổ chức triển khai theo sản phẩm công nghệ tự của dãy chỉ mục nhóm.Khóa ngoại không tự động hóa tạo ra một chỉ mục, đội 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ỉ có thể có một khóa chính trong một bảng.Chúng ta 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 cách bên trên để chế tạo khóa bao gồm trong MySQL và không những có ngơi nghỉ MySQL nhưng mà ở SQL Server cũng có thể có cú pháp tương tự như vì chúng hồ hết sử dụng ngôn ngữ T-SQL.

Thông thường xuyên khi thao tác làm việc với những ứng dụng web thì ta không nhiều khi thực hiện khóa ngoại cũng chính vì sẽ khôn cùng chậm, vì vậy fan ta sẽ nỗ lực thiết kế CSDL làm sao tối ưu để không lâu dài khóa ngoại.