mysql外鍵用于連接兩個(gè)表,確保子表中的值在父表中存在。創(chuàng)建外鍵需要使用alter table語句,指定外鍵列和父表的主鍵列。外鍵的作用包括維護(hù)數(shù)據(jù)完整性、級(jí)聯(lián)更新和刪除、規(guī)范化數(shù)據(jù)。外鍵約束包括參照完整性、級(jí)聯(lián)更新和級(jí)聯(lián)刪除。外鍵關(guān)系可以是一對(duì)一、一對(duì)多或多對(duì)多。
什么是 MySQL 外鍵?
MySQL 外鍵是一種數(shù)據(jù)庫關(guān)系,它在兩個(gè)表之間創(chuàng)建了邏輯連接,以確保數(shù)據(jù)的完整性。它指定一個(gè)表中的列與另一個(gè)表中的主鍵列相對(duì)應(yīng)。
如何使用外鍵?
要?jiǎng)?chuàng)建外鍵,請(qǐng)使用以下語法:
ALTER TABLE child_table ADD FOREIGN KEY (foreign_key_column) REFERENCES parent_table (primary_key_column);
登錄后復(fù)制
其中:
child_table 是包含外鍵的表。
foreign_key_column 是 child_table 中的外鍵列。
parent_table 是外鍵所引用的表。
primary_key_column 是 parent_table 中的主鍵列。
外鍵的作用
外鍵的主要作用是:
維護(hù)數(shù)據(jù)完整性:它防止向 child_table 中插入或更新不屬于 parent_table 中任何行的值。
級(jí)聯(lián)更新和刪除:當(dāng)對(duì) parent_table 中的主鍵列進(jìn)行更新或刪除操作時(shí),外鍵可以自動(dòng)更新或刪除 child_table 中相應(yīng)的外鍵值。
數(shù)據(jù)規(guī)范化:外鍵有助于將數(shù)據(jù)分解成更小的、更容易管理的表,同時(shí)保持?jǐn)?shù)據(jù)一致性。
外鍵約束
外鍵創(chuàng)建后,它會(huì)自動(dòng)實(shí)施以下約束:
參照完整性:child_table 中的外鍵值必須在 parent_table 中的主鍵值列表中。
級(jí)聯(lián)更新:如果 parent_table 中的主鍵值被更新,child_table 中相應(yīng)的外鍵值也會(huì)被更新。
級(jí)聯(lián)刪除:如果 parent_table 中的主鍵值被刪除,child_table 中相應(yīng)的外鍵值也會(huì)被刪除。
注意:
外鍵只能引用主鍵或唯一索引列。
外鍵可以為 NULL,以允許 child_table 中存在不屬于任何 parent_table 行的值。
外鍵關(guān)系可以是一對(duì)一、一對(duì)多或多對(duì)多。