mysql外來鍵主要用來建立主表與從表的關聯關係,為兩個表的資料建立連線,約束兩個表中資料的一致性和完整性;其作用是保持資料一致性,完整性,主要目的是控制儲存在外來鍵表中的資料。一個表可以有一個或多個外來鍵,外來鍵可以為空值,若不為空值,則每一個外來鍵的值必須等於主表中主鍵的某個值。
程式設計師必備介面測試偵錯工具:
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
MySQL 外來鍵約束(FOREIGN KEY)是表的一個特殊欄位,經常與主鍵約束一起使用。對於兩個具有關聯關係的表而言,相關聯欄位中主鍵所在的表就是主表(父表),外來鍵所在的表就是從表(子表)。
MySQL外來鍵的作用:
保持資料一致性,完整性,主要目的是控制儲存在外來鍵表中的資料。使兩張表形成關聯,外來鍵只能參照外表中列的值!
外來鍵用來建立主表與從表的關聯關係,為兩個表的資料建立連線,約束兩個表中資料的一致性和完整性。比如,一個水果攤,只有蘋果、桃子、李子、西瓜等 4 種水果,那麼,你來到水果攤要買水果就只能選擇蘋果、桃子、李子和西瓜,其它的水果都是不能購買的。
主表刪除某條記錄時,從表中與之對應的記錄也必須有相應的改變。一個表可以有一個或多個外來鍵,外來鍵可以為空值,若不為空值,則每一個外來鍵的值必須等於主表中主鍵的某個值。
定義外來鍵時,需要遵守下列規則:
主表必須已經存在於資料庫中,或者是當前正在建立的表。如果是後一種情況,則主表與從表是同一個表,這樣的表稱為自參照表,這種結構稱為自參照完整性。
必須為主表定義主鍵。
主鍵不能包含空值,但允許在外來鍵中出現空值。也就是說,只要外來鍵的每個非空值出現在指定的主鍵中,這個外來鍵的內容就是正確的。
在主表的表名後面指定列名或列名的組合。這個列或列的組合必須是主表的主鍵或候選鍵。
外來鍵中列的數目必須和主表的主鍵中列的數目相同。
外來鍵中列的資料型別必須和主表主鍵中對應列的資料型別相同。
在修改表時新增外來鍵約束
新增外來鍵約束的前提是:從表中外來鍵列中的資料必須與主表中主鍵列中的資料一致或者是沒有資料。
在修改資料表時新增外來鍵約束的語法格式如下:
ALTER TABLE <資料表名> ADD CONSTRAINT <外來鍵名>
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
登入後複製
範例:修改資料表 tb_emp2,將欄位 deptId 設定為外來鍵,與資料表 tb_dept1 的主鍵 id 進行關聯
ALTER TABLE tb_emp2 ADD CONSTRAINT fk_tb_dept1 FOREIGN KEY(deptId)REFERENCES tb_dept1(id);
登入後複製
刪除外來鍵約束
當一個表中不需要外來鍵約束時,就需要從表中將其刪除。外來鍵一旦刪除,就會解除主表和從表間的關聯關係。
刪除外來鍵約束的語法格式如下所示:
ALTER TABLE <表名> DROP FOREIGN KEY <外來鍵約束名>;
登入後複製
範例:刪除資料表 tb_emp2 中的外來鍵約束 fk_tb_dept1
ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;
登入後複製
相關推薦:《Linux視訊教學》
以上就是mysql外來鍵有什麼用的詳細內容,更多請關注TW511.COM其它相關文章!