mysql中有主键和外键吗_谈谈mysql的主键和外键
主鍵:保證數據的唯一性,非空且唯一,一般設置主鍵的語法為:字段 類型 PRIMARY KEY;或者 字段 類型,PRIMARY KEY(字段名)
外鍵:保證數據的完整性,一致性。一般設置的外鍵關聯的是另一張表的主鍵。外鍵的插入或者更新不能插入或更新主鍵表中沒有的值,切記刪除主鍵表中的數據時,
要先去外鍵表中接觸關系,也可以在建立外鍵時設置好更新或者刪除的外鍵表中的數據是否更改。設置外鍵的語法:CONSTRAINT?外鍵名?FOREIGN?KEY?(外鍵字段)REFERENCES?參照表?(參照字段)?ON?DELETE?SET?NULL?ON?UPDATE?CASCADE?設置參照完整性。
外鍵約束的參照操作:
RESTRICT拒絕參照表刪除或更新參照字段;
RESTRICT和NO?ACTION相同,但這個指令只在mysql生效;
CASCADE刪除或更新參照表的參照字段時,外鍵表的記錄同步刪除更新;
SET?NULL?刪除或更新參照表的參照字段時,外鍵表的外鍵設為NULL。
在這里說一句,外鍵一定要加索引,
(1) 外鍵沒有索引,確實可能導致子表產生表鎖,但是有前提:
a. 子表有刪改操作。
b. 主表有刪操作,或者更新主鍵的操作。
滿足以上兩個條件才會出現主表操作hang狀態。
(2) 外鍵不建索引,則刪除主表記錄或主子表關聯查詢,都會進行子表的全表掃描。
這里順帶說一下索引查詢的原理:
“索引”是為了能夠更快地查詢數據。比如一本書的目錄,就是這本書的內容的索引,讀者可以通過在目錄中快速查找自己想要的內容,然后根據頁碼去找到具體的章節。
數據庫也是一樣,如果查詢語句使用到了索引,會先去索引里面查詢,取得數據所在行的物理地址,進而訪問數據。
總結
以上是生活随笔為你收集整理的mysql中有主键和外键吗_谈谈mysql的主键和外键的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql导出数据表 .xls_mysq
- 下一篇: asp使用mysql5.0_ASP使用M