TẠO KHÓA NGOẠI TRONG SQL

     

Các khóa ngoại FOREIGN KEY nhằm tạo ra các mối liên kết giữa những bảng cùng với nhau. Một khóa ngoại FOREIGN KEY là 1 trong những trường (hoặc tập hợp các trường) vào một bảng, tham chiếu đến khóa bao gồm PRIMARY KEY vào một bảng khác. Bảng bao gồm khóa ngoại FOREIGN KEY được call là bảng con và bảng gồm khóa chủ yếu PRIMARY KEY được điện thoại tư vấn là bảng tham chiếu hoặc bảng cha.

Bạn đang xem: Tạo khóa ngoại trong sql

Để dễ dàng hình dung, tôi sẽ có bảng là: KhachHang(KhachHang_ID,Ho,Ten,Tuoi) bảng này sẽ có được khóa đó là KhachHang_ID

KhachHang_IDHoTenTuoi
1ChuMinh Nam20
2NguyễnTrí Thành19
3PhùngThái Sơn20

Bảng tiếp theo là bảng DatHang(MaDH, SoLuong, KhachHang_ID) bảng này sẽ có được khóa chính là MaDH và bao gồm thêm cột KhachHang_ID làm khóa ngoại liên kết hay tham chiếu cho khóa chính KhachHang_ID của bảng KhachHang(KhachHang_ID,Ho,Ten,Tuoi)

MaDHSoLuongKhachHang_ID
11233
23453
35672
47891

Sau lúc bảng DatHang được tạo thành và tham chiếu khóa ngoại tới bảng KhachHang bằng thuộc tính KhachHang_ID thì ta hoàn toàn rất có thể biết được rằng các đơn hàng trong bảng DatHang bởi ai là tín đồ đặt và hoàn toàn có thể lấy ra thông tin ID, họ tên, tuổi của người đặt hàng trong bảng KhachHang

2. Tạo khóa ngoại bằng FOREIGN KEYĐể chế tạo một khóa ngoại trong câu lệnh tạo ra bảng, ta sẽ thực hiện cú pháp như sau:

CREATE TABLE table_name ( column1 datatype PRIMARY KEY, column2 datatype, column3 datatype FOREIGN KEY REFERENCES table_name_pk(column_pk), ....);Nếu như bạn có nhu cầu tạo một khóa ngoại trong câu lệnh chế tạo ra bảng cùng đặt tên cho khóa ngoại kia thì rất có thể sử dụng câu lệnh như sau:

CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, PRIMARY KEY (column), CONSTRAINT name FOREIGN KEY (column) REFERENCES table_name_pk (column_pk) ....);Trong đó:

CREATE TABLE là câu lệnh giỏi từ khóa nên cótable_name là tên của bảng đề nghị tạocolumn1, column2, column3… là tên các cột thuộc trong bảngdatatype là kiểu tài liệu của từng cộtPRIMATY KEY là khóa chủ yếu cho cộtname là tên của khóa ngoại FOREIGN KEY do ta từ đặtREFERENCES table_name_pk(column_pk) chỉ định khóa ngoại đã tham chiếu đến bảng và cột phải liên kết.

Xem thêm: Kích Thước Am Dao Người Việt Nam Là Bao Nhiêu Centimet? Âm Đạo Ở Nữ Giới: 3 Điều Cần Biết

Để thêm một khóa ngoại vào trong bảng đã có sẵn, ta sẽ dùng câu lệnh như sau:

ALTER TABLE table_nameADD CONSTRAINT nameFOREIGN KEY (column) REFERENCES table_name_pk(column_pk);Để xóa đi một khóa ngoại đã tất cả sẵn vào bảng ta sẽ sử dụng câu lệnh sau:

ALTER TABLE table_nameDROP CONSTRAINT name;Trong câu lệnh xóa đi khóa nước ngoài ta cần phải biết được name chính là tên gọi của khóa ngoại mà lại ta vẫn đặt đến nó.

Xem thêm: Những Câu Nói Thâm Thúy Về Lòng Dạ Con Người ❤️️ Triết Lý, Những Câu Nói Hay Về Lòng Dạ Con Người

3. Lấy ví dụ FOREIGN KEY

Ví dụ này tôi sẽ tạo ra bảng có tên là KhachHang gồm những cột là: KhachHang_ID,Ho,Ten,Tuoi khóa thiết yếu cho bảng này vẫn là KhachHang_ID

CREATE TABLE KhachHang ( KhachHang_ID int NOT NULL PRIMARY KEY, Ho varchar(25) NOT NULL, Ten varchar(25) NOT NULL, Tuoi int);Tiếp theo, tôi sẽ tạo ra bảng mang tên là DatHang gồm các cột là: MaDH, SoLuong, KhachHang_ID bảng này sẽ sở hữu khóa chính là MaDH và có khóa ngoại là cột KhachHang_ID sẽ liên kết hay links tới cột KhachHang_ID của bảng KhachHang. Tôi vẫn đặt tên cho khóa nước ngoài này là PK_KhachDat

CREATE TABLE DatHang( MaDH int NOT NULL, SoLuong varchar(25) NOT NULL, KhachHang_ID int NOT NULL, PRIMARY KEY (MaDH), CONSTRAINT PK_KhachDat FOREIGN KEY (KhachHang_ID) REFERENCES KhachHang(KhachHang_ID));Dưới đấy là mối link giữa nhì bảng được biểu diễn thông qua Database Diagrams

*

Để triển khai xóa đi mối link này ta sẽ thực hiện câu lệnh như sau:

ALTER TABLE DatHangDROP CONSTRAINT PK_KhachDat;Chú ý: lúc bảng bao gồm khóa ngoại làm tham chiếu mang đến bảng phụ thân thì dữ liệu của bảng con tất cả khóa ngoại đang được mở ra trong bảng cha được tham chiếu.