mysql 鍵 MySQL的各種鍵詳解

2021-10-25 13:57:36 字數 1093 閱讀 6389

主鍵(primary key)

一列 (或一組列),其值能夠唯一區分表中的每個行。唯一標識表中每行的這個列(或這組列)稱為主鍵。主鍵用來表示乙個特定的行。沒有主鍵,更新或刪除表中特定行很困難,因為沒有安全方法保證只涉及相關的行而不誤傷其他行!

乙個顧客表可以使用顧客編號列,而訂單表可以使用訂單id,雇員表可以使用雇員id或雇員社會保險號。

應該總是定義主鍵 雖然並非總需主鍵,但大多數資料庫設計人員都應保證他們建立的每個表具有乙個主鍵,以便以後的資料操縱和管理。

表中的任何列都可以作為主鍵,只要它滿足以下主鍵值規則條件: 1. 任兩行不具相同的主鍵值 2. 每行都必須具有乙個主鍵值(主鍵列不允許null)這裡的規則是mysql本身強制實施的。

除mysql強制實施的規則外,還應該堅持的最佳實踐: 1. 不更新主鍵列中的值 2. 不重用主鍵列的值 3. 不在主鍵列中使用可能會更改的值 例如,如果使用乙個名字作為主鍵以標識某個**商,當該**商合併和更改其 名字時,必須更改這個主鍵)

聯合主鍵好處 可以直觀的看到某個重複欄位的記錄條數

主鍵a跟主鍵b組成聯合主鍵 主鍵a跟主鍵b的資料可以完全相同,聯合就在於主鍵a跟主鍵b形成的聯合主鍵是唯一的。 聯合主鍵體現在多個表上,復合主鍵體現在乙個表中的多個字段。

復合主鍵

主鍵通常定義在表的一列上,但這並不是必需的,也可使用多個列作為主鍵。此時上述的條件必須應用到構成主鍵的所有列,所有列值的組合必須是唯一的(多列中的單個列的值可以不唯一)。

表的主鍵含有乙個以上的字段組成,不使用無業務含義的自增id作為主鍵 將多個字段設定為主鍵,形成復合主鍵,這多個字段聯合標識唯一性,其中,某幾個主鍵字段值出現重複是沒有問題的,只要不是有多條記錄的所有主鍵值完全一樣,就不算重複

超鍵在關係中能唯一標識元組的屬性集稱為關係模式的超鍵。乙個屬性可以為作為乙個超鍵,多個屬性組合在一起也可以作為乙個超鍵。超鍵包含候選鍵和主鍵。

候選鍵是最小超鍵,即沒有冗餘元素的超鍵。

外來鍵在乙個表中存在的另乙個表的主鍵稱此表的外來鍵

主鍵的選擇**主鍵(推薦使用) 與業務無關的,無意義的數字序列。不與業務耦合,因此更容易維護

通用的鍵策略能夠減少要編寫的原始碼數量,減少系統的總體擁有成本

自然主鍵 事物屬性中的自然唯一標識

mysql各種key SQL中的各種鍵

sql中的primary key,unique key,foreign key。primary key與unique key的作用 共同作用是為了約束字段 建立索引 提高查詢效率 mysql primary key的屬性 主鍵具有唯一性 是指一張表裡只能有乙個主鍵 主鍵作用 主鍵primary ke...

mysql的各種外來鍵約束

外來鍵約束對子表的含義 如果在父表中找不到候選鍵,則不允許在子表上進行insert update 外來鍵約束對父表的含義 在父表上進行update delete以更新或刪除在子表中有一條或多條對應匹配行的候選鍵時,父表的行為取決於 在定義子表的外來鍵時指定的on update on delete子句...

mysql副鍵 mysql外來鍵

外來鍵是為了保證資料的完整性,但也會帶來許多 使用不當會使資料處理變得複雜,在資料量大的時候會明顯影響效能。所以,工具是工具,具體如何使用,根據自己情況取捨。注意 目前在mysql資料庫中,只有innodb儲存引擎支援外來鍵。外來鍵定義 兩個有關聯關係的表,其中乙個表中的某個欄位a指向另乙個表中的主...