一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 初探SQL語句復合主鍵與聯合主鍵

初探SQL語句復合主鍵與聯合主鍵

2020-08-15 22:04lfendo Mysql

這篇文章主要介紹了初探SQL語句復合主鍵與聯合主鍵的相關內容,具有一定參考價值,這里給大家分享下,需要的朋友可以參考。

一、復合主鍵

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

?
1
2
3
4
5
6
7
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等,而聯合主鍵要同時是兩個表的主題組合起來的。這是和復合主鍵最大的區別!

以上就是本文關于初探SQL語句復合主鍵與聯合主鍵的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,大家一起討論,共同進步。

原文鏈接:http://blog.csdn.net/u011781521/article/details/71083112

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲高清视频网站 | 视频污版 | 精品在线99 | 亚洲福利视频在线观看 | 精品国产品香蕉在线观看 | 九九99精品| 亚洲精品久久7777777 | 高清视频一区二区三区 | 日本道三区播放区 | 国产成人精品一区二三区 | 亚洲AV永久无码精品澳门 | 黄动漫软件车车好快的车车 | 国产一区二区精品久久 | 高h舔穴 | 色多多在线视频 | 香蕉国产人午夜视频在线观看 | 免费人成在线观看69式小视频 | 成人久久18免费网站入口 | 日韩欧美一区二区三区四区 | 亚洲人的天堂男人爽爽爽 | 国产欧美一区二区精品久久久 | 青青草99热这里都是精品 | 四虎影视在线影院在线观看 | 亚洲v日韩v欧美在线观看 | 免费在线中文字幕 | 九九国产在线 | 婷婷色在线 | 亚洲九九九 | 91香蕉视频在线观看 | 午夜在线观看免费完整直播网 | 成人在线免费观看视频 | 超级碰碰免费视频 | 日本福利视频网站 | 91噜噜噜在线观看 | 日本无卡码一区二区三区 | 日韩精品在线视频观看 | 日本嫩小xxxxhd | 精品国产一区二区三区久 | 亚洲精品国产A久久久久久 亚洲精品福利一区二区在线观看 | 暖暖的视频完整视频韩国免费 | 国产一区二区在线观看美女 |