在 MySQL 中顯示外來鍵
Preet Sanghavi
2023年1月30日
在本教程中,我們旨在探索如何在 MySQL 中顯示錶和列的外來鍵。
引用主鍵的鍵型別,也稱為另一個表的主鍵,稱為外來鍵。在使用 MySQL 時,瞭解表的外來鍵很重要。
此外,特定表的列也可以具有與之關聯的外來鍵。讓我們嘗試瞭解如何獲取這些外來鍵。
在 MySQL 中建立表
在開始之前,我們將建立一個虛擬資料集來使用。在這裡,我們將建立一個表 student_details
以及幾行。
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
上面的查詢建立了一個表,其中包含學生的名字和姓氏。要檢視資料中的條目,我們使用以下程式碼:
SELECT * FROM student_details;
上面的程式碼將給出以下輸出:
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
在 MySQL 中顯示錶的外來鍵
要在 MySQL 中獲取表的外來鍵,我們使用以下程式碼塊:
SELECT
TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = '<database>' AND
REFERENCED_TABLE_NAME = '<table>';
我們可以看到,在上面提到的查詢中,我們需要輸入資料庫和表名來獲取外來鍵。可以使用以下查詢來完成此任務:
SELECT
TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = '<boatdb>' AND
REFERENCED_TABLE_NAME = '<student_details>';
如前所述,上述查詢的資料庫名稱為 boatdb
,表名稱為 student_details
。上述程式碼的輸出如下:
1,TABLE_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
2,COLUMN_NAME,,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,-31,31
3,CONSTRAINT_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
4,REFERENCED_TABLE_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
5,REFERENCED_COLUMN_NAME,information_schema,KEY_COLUMN_USAGE,VARCHAR,utf8mb4,64,0,0
此外,我們還可以找到與特定列關聯的外來鍵。這可以藉助以下查詢來實現:
SELECT
TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = 'boatdb' AND
REFERENCED_TABLE_NAME = 'student_details' AND
REFERENCED_COLUMN_NAME = 'student_firstName';
正如我們所見,新增了一個額外的 REFERENCED_COLUMN_NAME
。
因此,藉助這種技術,我們可以有效地顯示與特定表和列關聯的外來鍵。
作者: Preet Sanghavi