您好,登錄后才能下訂單哦!
這篇文章主要介紹了mysql如何查詢外鍵約束的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇mysql如何查詢外鍵約束文章都會有所收獲,下面我們一起來看看吧。
在mysql中,可以利用show語句查詢外鍵約束,show語句可以顯示mysql中的數(shù)據(jù)庫、表和列的信息,語法為“SHOW CREATE TABLE 表名”;該語句可以顯示表中所有的主鍵約束、外鍵約束、非空約束等所有約束的信息。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
mysqlshow 命令用于顯示 MySQL 服務(wù)器中的數(shù)據(jù)庫、表和列信息。
在 MySQL 中可以使用 SHOW CREATE TABLE 語句來查看表中的約束,進(jìn)而查詢外鍵約束情況。
查看數(shù)據(jù)表中的約束語法格式如下:
SHOW CREATE TABLE <數(shù)據(jù)表名>;
示例如下:
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)
擴(kuò)展知識:
外鍵約束的定義
Mysql外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)
假設(shè)我們有2個(gè)表,分別是表A和表B,它們通過一個(gè)公共字段“id”發(fā)生關(guān)聯(lián)關(guān)系,我們把這個(gè)關(guān)聯(lián)關(guān)系叫做R。如果“id”在表A中是主鍵,那么,表A就是這個(gè)關(guān)系R中的主表。相應(yīng)的,表B就是這個(gè)關(guān)系中的從表,表B中的“id”,就是表B用來引用表A中數(shù)據(jù)的,叫外鍵。所以,外鍵就是從表中用來引用主表中數(shù)據(jù)的那個(gè)公共字段
外鍵約束的作用
外鍵約束,可以幫我們確定從表中外鍵字段與主表中的主鍵字段之間的引用關(guān)系,還可以確保從表中數(shù)據(jù)所引用的主表數(shù)據(jù)不會被刪除,確保兩個(gè)表中數(shù)據(jù)的一致性
主表刪除某條記錄時(shí),從表中與之對應(yīng)的記錄也必須有相應(yīng)的改變。一個(gè)表可以有一個(gè)或多個(gè)外鍵,外鍵可以為空值,若不為空值,則每一個(gè)外鍵的值必須等于主表中主鍵的某個(gè)值
但是,外鍵約束是有成本的,需要消耗系統(tǒng)資源,可能不適合大并發(fā)的SQL操作。因此mysql允許你不使用系統(tǒng)自帶的外鍵約束,在應(yīng)用層面完成檢查數(shù)據(jù)一致性的邏輯。這也是為什么我們即使沒有設(shè)置外鍵,也能進(jìn)行關(guān)聯(lián)查詢的原因
關(guān)于“mysql如何查詢外鍵約束”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“mysql如何查詢外鍵約束”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。