中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

聯合主鍵和復合主鍵有什么區別

發布時間:2020-07-11 09:52:20 來源:億速云 閱讀:798 作者:Leah 欄目:MySQL數據庫

這期內容當中小編將會給大家帶來有關聯合主鍵和復合主鍵有什么區別,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

                                                           一、復合主鍵

所謂的復合主鍵 就是指你表的主鍵含有一個以上的字段組成,不使用無業務含義的自增id作為主鍵。

例如:

create table test 
( 
   name varchar(19), 
   id number, 
   value varchar(10), 
   primary key (name,id) 
)

上面的name和id字段組合起來就是你test表的復合主鍵 ,它的出現是因為你的name字段可能會出現重名,所以要加上ID字段這樣就可以保證你記錄的唯一性 ,一般情況下,主鍵的字段長度和字段數目要越少越好 。

這里就會有一個疑惑?  主鍵是唯一的索引,那么為何一個表可以創建多個主鍵呢?

其實“主鍵是唯一的索引”這話有點歧義的。舉個例子,我們在表中創建了一個ID字段,自動增長,并設為主鍵,這個是沒有問題的,因為“主鍵是唯一的索引”,ID自動增長保證了唯一性,所以可以。

此時,我們再創建一個字段name,類型為varchar,也設置為主鍵,你會發現,在表的多行中你是可以填寫相同的name值的,這豈不是有違“主鍵是唯一的索引”這句話么?

所以我才說“主鍵是唯一的索引”是有歧義的。應該是“當表中只有一個主鍵時,它是唯一的索引;當表中有多個主鍵時,稱為復合主鍵,復合主鍵聯合保證唯一索引”。

為什么自增長ID已經可以作為唯一標識的主鍵,為啥還需要復合主鍵呢。因為,并不是所有的表都要有ID這個字段,比如,我們建一個學生表,沒有唯一能標識學生的ID,怎么辦呢,學生的名字、年齡、班級都可能重復,無法使用單個字段來唯一標識,這時,我們可以將多個字段設置為主鍵,形成復合主鍵,這多個字段聯合標識唯一性,其中,某幾個主鍵字段值出現重復是沒有問題的,只要不是有多條記錄的所有主鍵值完全一樣,就不算重復。

二、聯合主鍵

聯合主鍵顧名思義就是多個主鍵聯合形成一個主鍵組合(主鍵原則上是唯一的,別被唯一值所困擾。)

聯合主鍵的意義:用2個字段(或者多個字段,后面具體都是用2個字段組合)來確定一條記錄,說明,這2個字段都不是唯一的,2個字段可以分別重復,這么設置的好處,可以很直觀的看到某個重復字段的記錄條數。

一個簡單的例子 :

主鍵A跟主鍵B組成聯合主鍵

主鍵A跟主鍵B的數據可以完全相同,聯合就在于主鍵A跟主鍵B形成的聯合主鍵是唯一的。
下例主鍵A數據是1,主鍵B數據也是1,聯合主鍵其實是11,這個11是唯一值,絕對不充許再出現11這個唯一值。(這就是多對多關系)

主鍵A數據 主鍵B數據
1      1
2      2
3      3

主鍵A與主鍵B的聯合主鍵值最多也就是

11
12
13
21
22
23
31
32
33

總結: 以我來看復合主鍵就是含有一個以上的字段組成,如ID+name,ID+phone等,而聯合主鍵要同時是兩個表的主題組合起來的。這是和復合主鍵最大的區別!

上述就是小編為大家分享的聯合主鍵和復合主鍵有什么區別了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柞水县| 镇沅| 西充县| 满洲里市| 福安市| 繁峙县| 桐乡市| 青铜峡市| 潮安县| 双辽市| 三都| 井研县| 榆树市| 德阳市| 苍南县| 饶平县| 墨玉县| 含山县| 金沙县| 手游| 通州市| 五河县| 伊川县| 呈贡县| 赫章县| 中江县| 安陆市| 南丰县| 湖南省| 灵丘县| 大安市| 长兴县| 门头沟区| 弥渡县| 盘锦市| 延寿县| 广元市| 鸡西市| 龙门县| 天祝| 阿尔山市|