CÁCH TẠO KHÓA NGOẠI TRONG SQL

Khóa ngoại được dùng làm tăng tính tyêu thích chiếu trong cơ sở dữ liệu SQL Server. Khóa nước ngoài nghĩa là cực hiếm vào bảng này nên xuất hiện thêm vào bảng khác.

Bạn đang xem: Cách tạo khóa ngoại trong sql

Bảng tđê mê chiếu Call là bảng mẹ, còn bảng chứa khóa ngoại Call là bảng con. Khóa ngoại trong bảng nhỏ thường tđắm đuối chiếu tới khóa chínhPRIMARY KEYvào bảng mẹ.

Khóa nước ngoài hoàn toàn có thể được chế tạo ra bởi lệnhCREATE TABLEhoặc lệnhALTER TABLE.

Cú pháp:

CREATE TABLE bang_con ( cot1 kieudulieu < NULL | NOT NULL >, cot2 kieudulieu < NULL | NOT NULL >, … CONSTRAINT fk_ten FOREIGN KEY (cot_con1, cot_con2, … cot_con_n) REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n) < ON DELETE SET NULL > < ON UPDATE NO ACTION > );

Giải mê say những tham số trên

bang_con

Tên của bảng con mong chế tạo.

cot1, cot2

Cột mong mỏi chế tạo ra vào bảng. Mỗi cột có một nhiều loại dữ liệu, bắt buộc được hướng đẫn là chứa cực hiếm NULL xuất xắc NOT NULL, nếu như không vẫn mang định là NULL.

fk_ten

Tên của ràng buộc khóa nước ngoài ao ước tạo ra.

cot_con1, cot_con2, … cot_con_n

Cột vào bang_bé ao ước tsay mê chiếu cho tới khóa bao gồm trong bang_me.

bang_me

Tên của bảng người mẹ cất khóa chính được dùng vào bang_nhỏ.

cot_me1, cot_me2, … cot_me_n

Cột tạo cho khóa thiết yếu vào bang_me. Khóa ngoại sẽ tạo nên buộc ràng giữa tài liệu cùng những cột cot_con1, cot_con2, … cot_con_n vào bang_bé.

ON DELETE

Tùy lựa chọn. Cho biết đã làm những gì với tài liệu con Lúc dữ liệu bà mẹ bị xóa. Có các gạn lọc NO ACTION, CASCADE, SET NULL cùng SET DEFAULT.

ON UPDATE

Tùy lựa chọn. Cho biết đã làm những gì với dữ liệu con Lúc dữ liệu bà bầu được cập nhật. Có các lựa chọn NO ACTION, CASCADE, SET NULL cùng SET DEFAULT.

Xem thêm: Những Bài Toán Hay Và Khó Lớp 3, 101 Bài Toán Tự Luyện Nâng Cao Lớp 3

NO ACTION

Dùng với ON DELETE hoặc ON UPDATE, nghĩa là ko làm cái gi cùng với tài liệu nhỏ Lúc tài liệu bà mẹ bị xóa hoặc update.

CASCADE

Dùng với ON DELETE hoặc ON UPDATE, tức thị dữ liệu bé bị xóa hoặc update Lúc dữ liệu người mẹ bị xóa hoặc cập nhật.

SET NULL

Dùng cùng với ON DELETE hoặc ON UPDATE, nghĩa là tài liệu nhỏ được đặt là NULL Khi tài liệu chị em bị xóa hoặc update.

SET DEFAULT

Dùng cùng với ON DELETE hoặc ON UPDATE, nghĩa là tài liệu nhỏ được đặt thành quý hiếm mang định lúc tài liệu bà bầu bị xóa hoặc cập nhật.

Khóa nước ngoài Foreign Key (Cascade Delete) vào Squốc lộ ServerKhóa ngoại Foreign Key (Set Null) vào Squốc lộ Server

Ví dụ :

Chúng ta sẽ hai bảng"products" và"inventory". Trong bảng "products" có khóa thiết yếu là"product_id" cũng chính là khóa nước ngoài trong bảng "inventory".

CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, category VARCHAR(25) ); CREATE TABLE inventory ( inventory_id INT PRIMARY KEY, product_id INT NOT NULL, quantity INT, min_level INT, max_level INT, CONSTRAINT fk_inv_product_id FOREIGN KEY (product_id) REFERENCES products (product_id) ); Kết quả:

*

Tên khóa ràng buộc khóa ngoại vào bảng "inventory"fk_inv_product_id.Nó đã tùy chỉnh dục tình giữ lại nhì bảng"inventory" với "products" trên cộtproduct_id.

Chúng ta hoàn toàn có thể khám nghiệm 2 bảng:.

*
*

Tạo khóa ngoại áp dụng nhiều trường

Create foreign key with more than one field

Trong ví dụ bên trên họ chế tạo ra khóa nước ngoài thực hiện một cột, vào ví dụ sau chúng ta sẽ tạo nên khóa ngoại nhiều hơn nữa một trường.

Giờ chúng ta tạo nên nhị bảng"products2" "inventory2". Trong ví dụ này bảng "products2"bao gồm khóa chính là hai cộtproduct_name vàlocation. Do kia, bảng máy hai bắt buộc gồm khóa nước ngoài là nhị cột này

Trong ví dụ này, tên khóa ngoại làfk_inv_hàng hóa tđê mê chiếu đến bảng products gồm hai trường: the product_name vàlocation.

CREATE TABLE products2 ( product_name VARCHAR(50) NOT NULL, location VARCHAR(50) NOT NULL, category VARCHAR(25) CONSTRAINT products_pk PRIMARY KEY (product_name, location) ); CREATE TABLE inventory2 ( inventory_id INT PRIMARY KEY, product_name VARCHAR(50) NOT NULL, location VARCHAR(50) NOT NULL, quantity INT, min_level INT, max_level INT, CONSTRAINT fk_inv_hàng hóa FOREIGN KEY (product_name, location) REFERENCES products2 (product_name, location) ); Kết quả: