Tìm hiểu khái niệm và cách tạo khóa chính trong sql

 - 

Các khoá chính cùng khóa ngoại là hai loại ràng buộc có thể được thực hiện để thực thi trọn vẹn dữ liệu trong số bảng SQL Server cùng đấy là phần nhiều đối tượng người sử dụng các đại lý dữ liệu đặc biệt quan trọng.

Bạn đang xem: Tìm hiểu khái niệm và cách tạo khóa chính trong sql

Trong Squốc lộ Server, có nhì khóa - khóa thiết yếu và khoá nước ngoài có thể giống nhau, nhưng thực tiễn cả nhị mọi khác nhau về các tài năng và hành vi. Các khoá chính và khóa nước ngoài là nhì loại buộc ràng hoàn toàn có thể được áp dụng để xúc tiến toàn vẹn dữ liệu trong số bảng Squốc lộ Server và đây là mọi đối tượng cơ sở tài liệu quan trọng đặc biệt.

Trong bài này, tôi mong share sự khác biệt ở vị trí chính giữa khóa chủ yếu và khoá ngoại.

1. Khóa đó là gì

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

Bên cạnh đó, nó còn dùng để làm cấu hình thiết lập quan hệ giới tính 1-n (xuất xắc buộc ràng tđê mê chiếu) thân nhị table vào cơ sở dữ liệu.

Dữ liệu (value) của field khóa thiết yếu yêu cầu bao gồm tính độc nhất. Và không đựng những giá trị Null.

Mỗi table nên có thể bao gồm một khóa bao gồm, khóa thiết yếu rất 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ư nhỏng nhỏ trỏ trỏ tới khóa bao gồm của table không giống.

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

Để nắm rõ rộng về ý nghĩa sử dụng của khóa chính, khóa nước ngoài họ hãy xét ví dụ sau: Giả sử cơ sở dữ liệu QLDiemSV gồm nhị table: HSSV cùng DiemSV nlỗi sau:

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

*

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

*

bởi thế, nhì table HSSV với DiemSV quan hệ dữ liệu với nhau trải qua field MaSV của mỗi table (đây là dục tình 1 – n). Hay có thể nói rằng, buộc ràng tyêu thích chiếu đã có được chế tạo ra giữa nhị table (từ bỏ table DiemSV cho table HSSV).

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

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

Để chế tác khóa chính ngay khi tạo table ta rất có thể áp 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 thành table HSSV, mặt khác chỉ định field MaSV làm khóa bao gồm mang đến nó.

Trong trường thích hợp khóa chủ yếu được Thành lập từ rất nhiều field cùng ta đề nghị đặt tên đến ràng buộc khóa này thì hoàn toàn có thể áp dụng 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ính table này được Ra đời từ hai field: MaSV cùng MaLop cùng thương hiệu của ràng buộc này là Ma.

Xem thêm: Sửa Lỗi Stop Working Trong Pes 2013 Stop Working, Sửa Lỗi Stop Working Pes 2013

3.1 Tạo khóa bao gồm mang đế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, vào ngôi trường thích hợp này những field MaSV, MaLop buộc phải đã có được khai báo ràng buộc NOT NULL (trng Lúc tạo nên 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ác khóa ngoại ngay khi chế tạo ra table ta rất có thể sử dụng câu lệnh SQL 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 gồm 6 field, trong số ấy khóa chính là field STT cùng field khóa ngoại là MaSV. Table này chế tác buộc ràng tđắm say 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))lúc đề xuất đánh tên cho ràng buộc khóa ngoại và khóa nước ngoài được ra đời từ nhiều field thì ta yêu cầu áp dụng câu lệnh Create Table theo hình thức này.

4.1 Tạo khóa nước ngoài đến table đã 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 trong ngôi trường thích hợp đề xuất khắc tên cho buộc ràng khóa nước ngoài và khóa nước ngoài được sinh ra 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 MySQL ALTER được áp dụng siêu phổ cập trong những trường phù hợp biến hóa tên của table, thương hiệu của field hoặc thêm/xóa những field vào một table làm sao đó. Vì vậy, họ vẫn quay lại câu lệnh này sống những bài sau.

5. Bảng so sánh

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

6. Tổng kết

Chúng ta chỉ áp dụng những phương pháp bên trên nhằm tạo nên khóa bao gồm trong MySquốc lộ và không những bao gồm ở MySquốc lộ mà ngơi nghỉ Squốc lộ Server cũng có cú pháp giống như bởi vì bọn chúng rất nhiều sử dụng ngữ điệu T-Squốc lộ.

Thông thường Lúc làm việc với các vận dụng website thì ta hiếm khi thực hiện khóa nước ngoài cũng chính vì sẽ rất lừ đừ, vì chưng vậy tín đồ ta vẫn cố gắng xây đắp DataBase làm sao về tối ưu nhằm ko vĩnh cửu khóa nước ngoài.