共計 1719 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章主要介紹了 mysql 如何查詢外鍵約束的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 mysql 如何查詢外鍵約束文章都會有所收獲,下面我們一起來看看吧。
在 mysql 中,可以利用 show 語句查詢外鍵約束,show 語句可以顯示 mysql 中的數據庫、表和列的信息,語法為“SHOW CREATE TABLE 表名”;該語句可以顯示表中所有的主鍵約束、外鍵約束、非空約束等所有約束的信息。
本教程操作環境:windows10 系統、mysql8.0.22 版本、Dell G3 電腦。
mysql 怎么查詢外鍵約束
mysqlshow 命令用于顯示 MySQL 服務器中的數據庫、表和列信息。
在 MySQL 中可以使用 SHOW CREATE TABLE 語句來查看表中的約束,進而查詢外鍵約束情況。
查看數據表中的約束語法格式如下:
SHOW CREATE TABLE 數據表名
示例如下:
mysql CREATE TABLE tb_emp8
- ( - id INT(11) PRIMARY KEY,
- name VARCHAR(22) UNIQUE,
- deptId INT(11) NOT NULL,
- salary FLOAT DEFAULT 0,
- CHECK(salary 0),
- FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
- );
Query OK, 0 rows affected (0.37 sec)
mysql SHOW CREATE TABLE tb_emp8 \G
*************************** 1. row ***************************
Table: tb_emp8
Create Table: CREATE TABLE `tb_emp8` ( `id` int(11) NOT NULL,
`name` varchar(22) DEFAULT NULL,
`deptId` int(11) NOT NULL,
`salary` float DEFAULT 0 ,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `deptId` (`deptId`),
CONSTRAINT `tb_emp8_ibfk_1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.19 sec)
擴展知識:
外鍵約束的定義
Mysql 外鍵約束(FOREIGN KEY)是表的一個特殊字段,經常與主鍵約束一起使用。對于兩個具有關聯關系的表而言,相關聯字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)
假設我們有 2 個表,分別是表 A 和表 B,它們通過一個公共字段“id”發生關聯關系,我們把這個關聯關系叫做 R。如果“id”在表 A 中是主鍵,那么,表 A 就是這個關系 R 中的主表。相應的,表 B 就是這個關系中的從表,表 B 中的“id”,就是表 B 用來引用表 A 中數據的,叫外鍵。所以,外鍵就是從表中用來引用主表中數據的那個公共字段
外鍵約束的作用
外鍵約束,可以幫我們確定從表中外鍵字段與主表中的主鍵字段之間的引用關系,還可以確保從表中數據所引用的主表數據不會被刪除,確保兩個表中數據的一致性
主表刪除某條記錄時,從表中與之對應的記錄也必須有相應的改變。一個表可以有一個或多個外鍵,外鍵可以為空值,若不為空值,則每一個外鍵的值必須等于主表中主鍵的某個值
但是,外鍵約束是有成本的,需要消耗系統資源,可能不適合大并發的 SQL 操作。因此 mysql 允許你不使用系統自帶的外鍵約束,在應用層面完成檢查數據一致性的邏輯。這也是為什么我們即使沒有設置外鍵,也能進行關聯查詢的原因
關于“mysql 如何查詢外鍵約束”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“mysql 如何查詢外鍵約束”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道。