Cách tạo khóa ngoại trong sql

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

You watching: Cách tạo khóa ngoại trong sql

Trong SQL Server, bao gồm hai khóa - khóa chính và khoá ngoại giống như như thể nhau, nhưng mà thực tế cả hai đầy đủ khác biệt về những tài năng và hành vi. Các khoá chủ yếu cùng khóa ngoại là nhì nhiều 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 những bảng Squốc lộ Server với đấy là đông đảo đối tượng cửa hàng tài liệu đặc biệt.

Trong bài bác này, tôi muốn chia sẻ sự khác biệt ở chính giữa khóa bao gồm với khoá ngoại.

1. Khóa đó là gì

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

Dường như, nó còn dùng làm thiết lập cấu hình quan hệ tình dục 1-n (giỏi ràng buộc tđắm đuối chiếu) thân nhì table vào cửa hàng dữ liệu.

Dữ liệu (value) của field khóa chính bắt buộc tất cả tính nhất. Và không chứa những giá trị 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ừ khá nhiều field của table.

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

Khóa ngoại của một table được xem như bé 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 sử dụng để tạo nên buộc ràng tyêu thích chiếu mang lại table HSSV, thông qua khóa đó 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 đó là nguyên do mà ta nói, khóa ngoại được xem như bé trỏ trởi cho tới khóa bao gồm.

Để nắm rõ rộng về ý nghĩa sâu sắc áp dụng của khóa bao gồm, 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 với DiemSV như sau:

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

*

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

*

Như vậy, nhì table HSSV với DiemSV quan hệ tình dục tài liệu với nhau trải qua field MaSV của mỗi table (đây là quan hệ tình dục 1 – n). Hay có thể nói, buộc ràng tsay mê chiếu đã được chế tạo ra giữa nhì table (từ 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 chũm ý hủy hoại những links có khả năng sẽ bị ngăn ngừa. Và, người sử dụng cũng chẳng thể nhtràn lên cột khóa nước ngoài một quý hiếm nhưng mà quý hiếm kia ko xuất hiện thêm ngơi nghỉ cột khóa chủ yếu mà lại 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 mình ko mở ra ở cột MaSV nghỉ ngơi table HSSV).

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

Để sản xuất khóa thiết yếu ngay lúc tạo nên table ta rất có thể thực hiện câu lệnh Squốc lộ Create Table nlỗi sau:

(MaSV varchar (8) NOT NULL,Holot varchar(20), Ten varchar(8),NgaySinch 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, đôi khi hướng dẫn và chỉ định field MaSV có tác dụng khóa chủ yếu cho nó.

Trong ngôi trường phù hợp khóa thiết yếu được ra đời từ không ít field cùng ta nên viết tên mang đế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ư sau:

(MaSV varchar (8) NOT NULL,Holot varchar(20), Ten varchar(8),NgaySinc DATE, MaLop varchar(8) NOT NULL,Lienhe varchar(11) NOT NULL,CONSTRAINT Ma PRIMARY KEY (MaSV, MaLop));Vậy khóa thiết yếu table này được thành lập và hoạt động từ bỏ nhì field: MaSV và MaLop với thương hiệu của buộc ràng này là Ma.

See more: Imgur Post - Download Proshow Gold

3.1 Tạo khóa chính mang lại table đã tạo

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

ALTER TABLE HSSV ADD 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 vừa lòng này những field MaSV, MaLop phải đã có khai báo buộc ràng NOT NULL (trng lúc chế tác 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

Để sản xuất khóa nước ngoài ngay lúc tạo table ta có thể sử dụng câu lệnh SQL 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 những số đó khóa đó là field STT với field khóa nước ngoài là MaSV. Table này tạo ràng buộc tham 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))Lúc đề nghị đặt tên mang đến buộc ràng khóa nước ngoài và khóa ngoại được hiện ra từ khá nhiều field thì ta phải thực hiện câu lệnh Create Table theo phương thức này.

4.1 Tạo khóa ngoại mang lại table đã 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 thích hợp buộc phải đánh tên cho buộc ràng khóa nước ngoài cùng khóa nước ngoài được ra đời 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 hết sức thông dụng trong những ngôi trường hòa hợp chuyển đổi tên của table, tên của field hoặc thêm/xóa các field vào một table như thế nào kia. Vì vậy, chúng ta đã trở lại câu lệnh này sống các bài bác sau.

5. Bảng so sánh

Khóa chínhKhóa ngoại
Khóa chính xác định độc 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 thiết yếu trong một bảng khác.
Khóa bao gồm không gật đầu các quý giá rỗng.Khóa ngoại hoàn toàn có thể gật đầu đồng ý nhiều giá trị rỗng.
Theo mặc định, khoá chính là chỉ mục được team cùng tài 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 công nghệ từ của dãy chỉ mục đội.Khóa ngoại không tự động hóa tạo nên một chỉ mục, nhóm hoặc ko đội. Quý khách hàng hoàn toàn có thể từ tạo thành một chỉ mục bên trên khoá ngoại.
Chúng ta chỉ rất có thể tất cả một khóa chính trong một bảng.Chúng ta có thể có nhiều khoá nước ngoài vào một bảng.

6. Tổng kết

Chúng ta chỉ sử dụng những cách bên trên để chế tác khóa bao gồm vào MySQL và không những có sinh hoạt MySQL nhưng sinh sống SQL Server cũng có thể có cú pháp tựa như bởi vì chúng phần đa áp dụng ngữ điệu T-SQL.

See more: Cách Nấu Lươn Với Hoa Chuối Đơn Giản Mà Ngon, Món Lươn Om Hoa Chuối Dân Dã Mà Hấp Dẫn

Thông thường Khi thao tác cùng với các áp dụng website thì ta ít khi sử dụng khóa ngoại chính vì sẽ khá lờ đờ, bởi vì vậy người ta đã nỗ lực xây dựng CSDL làm thế nào về tối ưu nhằm không vĩnh cửu khóa nước ngoài.