本系列為:MySQL資料庫詳解,為千鋒教育資深Java教學老師獨家創作
緻力于為大家講解清晰MySQL資料庫相關知識點,含有豐富的代碼案例及講解。如果感覺對大家有幫助的話,可以【關注】持續追更~
文末有重點總結和福利内容! 技術類問題,也歡迎大家和我們溝通交流!
前言
從今天開始本系列内容就帶各位小夥伴學習資料庫技術。資料庫技術是Java開發中必不可少的一部分知識内容。也是非常重要的技術。本系列教程由淺入深, 全面講解資料庫體系。 非常适合零基礎的小夥伴來學習。
全文大約 【1475】字, 不說廢話,隻講可以讓你學到技術、明白原理的純幹貨!本文帶有豐富案例及配圖,讓你更好的了解和運用文中的技術概念,并可以給你帶來具有足夠啟迪的思考......
一. 表關系
各位小夥伴在學習多表連接配接查詢前,首先我們要介紹下表與表之間的關系。在多張表中,表和表之間是有四種關系的,分别是:一對一、一對多、多對一、多對多四種。
1. 一對一關系
所謂一對一關系就是兩張表中,一張表的一條資料對應另一張表的一條資料。
下圖中學生表和學生詳情表的id起到了一個對應一個的關系,這就是一對一關系。
2. 一對多關系
一對多關系就是一張表的某一條資料對應另一張表的N多條資料,這種關系就是一對多。
例如下圖中teacher講師表中的tid為02的資料這條對應subject科目表中的SpringCloud、Redis、RabbitMQ這三條資料因為他們的teaid字段的值都是2。
3. 多對一關系
将一對多關系反過來看就是多對一了。
例如下圖中subject科目表中的SpringCloud、Redis、RabbitMQ這三條資料都對應teacher講師表中的這條資料。
4. 多對多關系
多對多關系需要借助一張關聯表來完成。如下圖,student學生表和score成績表的關系是一對多,subject科目表和score成績表的關系是一對多。那麼student學生表和subject科目表的關系就是N:N多對多的關系。借助score成績表作為關聯表來完成多對多關系。
二. 表連接配接查詢
下面帶各位小夥伴一起學習表連接配接查詢。
表連接配接查詢一共分為三種分别是:内連接配接,左外連接配接,右外連接配接三種方式。
文法:SELECT 列名 FROM 表1 連接配接方式 表2 ON 連接配接條件
1. 内連接配接查詢(INNER JOIN ON)
敲黑闆啦,大家畫重點哦
特點: 内連接配接是将兩張表有關聯關系的資料顯示出來,沒有關聯關系的不顯示。
SQL複制代碼#1.查詢每個講師所教的科目(顯式内連接配接)
select * from teacher a INNER JOIN `subject` b on a.TId=b.teaid;
#2.查詢每個講師所教的科目(隐式内連接配接)
select * from teacher a , `subject` b where a.TId=b.teaid;
經驗: 在 MySql 中,第二種方式也可以作為内連接配接查詢,但是不符合 SQL 标準。
而第一種屬于 SQL 标準,與其他關系型資料庫通用。
2. 左外連接配接(LEFT JOIN ON)
特點: 左外連接配接是以LEFT JOIN關鍵字左邊為左表,關鍵字右邊為右表。左表的資料全顯示出來,右表的資料有關聯關系的正常顯示,沒有關聯關系的顯示null。
SQL複制代碼#查詢所有學生和成績
select * from student a LEFT JOIN score b ON a.SId = b.stuId;
注意: 左外連接配接,是以左表為主表,依次向右比對,比對到,傳回結果。
比對不到,則傳回 NULL 值填充。
3. 右外連接配接(RIGHT JOIN ON)
特點: 右外連接配接是以RIGHT JOIN關鍵字左邊為左表,關鍵字右邊為右表。右表的資料全顯示出來,左表的資料有關聯關系的正常顯示,沒有關聯關系的顯示null。
SQL複制代碼#查詢所有學生和成績
select * from student a RIGHT JOIN score b ON a.SId = b.stuId;
注意: 右外連接配接,是以右表為主表,依次向左比對,比對到,傳回結果。
比對不到,則傳回 NULL 值填充。
三. 結語
最後在這裡對本文核心要點進行總結:
熟練掌握表與表之間的四種關系:一對一、一對多、多對一、多對多。
熟練掌握表關聯查詢的三種方式:内連接配接查詢、左外連接配接查詢、右外連接配接查詢,并熟記他們的特點。
附贈福利!
千鋒教育2023新版MySQL課程,MySQL資料庫零基礎從入門到精通全套視訊,點選下方連結即可學習!
視訊傳送門(點選即可跳轉學習):「連結」
更多技術類幹貨内容/IT程式員相關知識,關注@千鋒教育