首頁 >資料庫 >SQL >瞭解sql語句的內連接、左外連接、右外連接

瞭解sql語句的內連接、左外連接、右外連接

coldplay.xixi
coldplay.xixi轉載
2021-01-15 10:20:464220瀏覽

瞭解sql語句的內連接、左外連接、右外連接

推薦( 免費):SQL教學


瞭解sql語句的內連接、左外連接、右外連接
大家在初學資料庫時,對DQL中的連接查詢是否有些疑惑,不知道什麼時候什麼場景下該用那種連接查詢?


不要著急,接下來由我來給大家介紹一下,本人對內連接、左外連接、右外連接的特點和應用場景的理解,供大家參考。 以下的程式碼示範皆基於name表和country表展開。

name表id#name1西施2楊玉環3貂蟬4王昭君5趙飛燕

country表格#idcountryA_ID1春秋時期越國人#1
##2 唐代蒲州永樂人 2
3 東漢末年山西忻州人 3
#4

西漢時期南郡秭歸人

4

#5##《戰國時期

1)b表A_ID與a表a_id 存在關係id#西施
# 6 註: 2)連接查詢是要使用關聯條件去除不匹配資料否則會出現笛卡爾積
1) 內連接
语法:	select  要查询的字段 from 表名1 inner join 表名2 on 表1.字段 = 表2.字段;
	inner join 可简写为 逗号,
内连接特点:
	只会保留完全符合on后条件的数据
应用场景:
	如果两张表有外键关系可以使用内链接,因为通过内链接每一条只能返回单条记录
select * from name n inner join country c on n.id = c.N_ID;
id name
country N_ID #1

1春秋越國人1#2楊玉環2唐代蒲州永樂人2#3貂蟬#3東漢末年山西忻州人34王昭君4西漢時期南郡秭歸人42)左外連接
语法:	select 要查询的字段 from 表1 left outer join 表2 on 表1.字段 = 表2.字段;
	outer 可省略
左外连接特点:
	以左表为主,会保留左表中不符合on后条件的数据
应用场景:
	只有部分记录可以从表2中查到,但表1想要显示所有记录,就可以和表2通过左外连接查询。
select * from name n left join country c on n.id=c.N_ID;
id nameidcountryN_ID
'

1 西施

1春秋時期越國人12 楊玉環2唐代蒲州永樂人2#3貂蟬3 東漢末年山西忻州人3#4王昭君4#西漢時期南郡秭歸人4#5趙飛燕null#nullnull3) 右外連接
语法:	select * from 表1 right outer join 表2 on 表1.字段 = 表2.字段;
	outer 可省略
右外连接特点:
	以右表为主,会保留右表中不符合on后条件的数据
应用场景:
	和左外连接相反
	只有部分记录可以从表1中查询到,但表2想要显示所有记录, 就可以和表1通过右外连接查询。
select * from name n right join country c on n.id=c.N_ID;
idnameidcountryN_ID

1西施

1春秋時期越國人12 楊玉環2唐代蒲州永樂人2#3貂蟬3東漢末年山西忻州人3#4王昭君4#西漢時期南郡秭歸人4nullnull5戰國時期64) 完全連結#
语法:	select * from 表1 full join 表2 on 表1.字段 = 表2.字段;完全连接特点:
	会保留表1和表2的全部数据
select * from name n full join country c on n.id=c.N_ID;
nameidcountryN_ID1西施1春秋時期越國人1

#2楊玉環

2
瞭解sql語句的內連接、左外連接、右外連接唐代蒲州永樂人

23

###貂蟬######3##### ##東漢末年山西忻州人######3#############4######王昭君######4######西漢時期南郡秭歸人######4############5######趙飛燕######null######null####### null############null######null#######5######戰國時期#####6####### ###########注意:該語法在MySql中不適用###### 好的,本人介紹完畢,不知道有沒有幫助到各位呢? ### 如果有什麼不對,還請各位指出哦~###############更多相關知識敬請關注###sql###欄位~##### #

以上是瞭解sql語句的內連接、左外連接、右外連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除