關聯關係、關聯查詢(等值連線、內連線、外連線)
關聯關係
-
建立表時, 表和表之間存在的業務關係
-
有哪幾種關係?
-
一對一: 有AB兩張表,A表中的一條資料對應B表中的一條資料, 同時B表中的一條資料也對應A表中的一條.
-
一對多:有AB兩張表,A表中的一條資料對應B表中的多條資料, 同時B表中的一條資料對應A表中的一條.
-
多對多:有AB兩張表,A表中的一條資料對應B表中的多條資料, 同時B表中的一條資料也對應A表中的多條.
-
-
表和表之間如何建立關係?
-
通過一個單獨的欄位指向另外一張表的主鍵
-
一對一的關係: 有AB兩張表,在任意一張表中新增欄位指向另外一個表的主鍵
-
一對多的關係: 有AB兩張表,在一對多的關係中,多的一端新增一個單獨欄位指向另外一張表的主鍵
-
多對多的關係: 有AB兩張表 還需要建立一個單獨的關係表,裡面兩個欄位分別指向另外兩張表的主鍵
-
關聯查詢
-
等值連線
-
內連線
-
外連線
等值連線:求兩張表資料的交集資訊
格式:select 欄位資訊 from 表1 別名1,表2 別名2 where 連線條件(關聯關係) and 其他條件(沒有時可省略and之後的內容);
注意:重複的欄位資訊要用別名.加以區分。
內連線:求兩張表資料的交集資訊(推薦)
格式:select 欄位資訊 from 表1 別名1 join 表2 別名2 on 連線條件(關聯關係) where 其他條件(沒有可省略where之後的內容);
注意:重複的欄位資訊要用別名.加以區分。
總結:等值連線和內連線查詢到的資料是一樣的,都是兩個表的交集資料,只是書寫格式不一樣,推薦使用內連線。
外連線:如果查詢的是一張表的全部和另外一張表的交集,使用外連線。
格式:select 欄位資訊 from 表1 別名1 left/right join 表2 別名2 on 連線條件(關聯關係) where 其它條件(沒有可省略where);
注意:
-
重複的欄位資訊要用別名.加以區分;
-
left/right分別側重於查詢左/右表的全部資訊與另一個表的交集資訊,沒有時用null作為結果。