超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點(diǎn)晴永久免費(fèi)OA]SQL中的各種連接的區(qū)別總結(jié)

admin
2023年10月8日 8:34 本文熱度 1479

前言

  今天主要的內(nèi)容是要講解SQL中關(guān)于Join、Inner Join、Left Join、Right Join、Full Join、On、 where區(qū)別和用法,不用我說(shuō)其實(shí)前面的這些基本SQL語(yǔ)法各位攻城獅基本上都用過(guò)。但是往往我們可能用的比較多的也就是左右連接和內(nèi)連接了,而且對(duì)于許多初學(xué)者而言不知道什么時(shí)候該用哪種語(yǔ)法進(jìn)行查詢,并且對(duì)于左右,或者內(nèi)連接查詢的時(shí)候關(guān)于ON 和where 的作用也是模糊不清的,說(shuō)不出其中的一個(gè)大概的差別,因此接下來(lái)請(qǐng)容我把它們好好描述一遍。

數(shù)據(jù)庫(kù)(MS Sql Server)表結(jié)構(gòu)和對(duì)應(yīng)數(shù)據(jù)

Students 學(xué)生表:

Class 班級(jí)表:

Join(where聯(lián)立查詢)

概念:用于兩表或多表之間數(shù)據(jù)聯(lián)立查詢。

select * from Students s,Class c where s.ClassId=c.ClassId

Inner Join(內(nèi)連接查詢)

概念:與Join相同,兩表或多表之間聯(lián)立查詢數(shù)據(jù),因此我們?cè)谑褂枚啾韏oin查詢的時(shí)候既可以使用where關(guān)聯(lián),也可以是inner join關(guān)聯(lián)查詢。

select * from Students s inner join Class c on s.ClassId=c.ClassId

Left Join(左連接查詢)

概念:以左表中的數(shù)據(jù)為主,即使與右表中的數(shù)據(jù)不匹配也會(huì)把左表中的所有數(shù)據(jù)返回。

select * from Students s left join Class c on s.ClassId=c.ClassId

Right Join(右連接查詢)

概念:與Left Join的用法相反,是以右表中的數(shù)據(jù)為主,即使左表中不存在匹配數(shù)據(jù)也會(huì)把右表中所有數(shù)據(jù)返回。

select * from Students s right join Class c on s.ClassId=c.ClassId

Full Join(全連接查詢)

概念:返回表中所有的數(shù)據(jù)數(shù)據(jù),無(wú)論匹配與否。

select * from Students s Full JOIN Class c on s.ClassId=c.ClassId

On、where的異同

這兩個(gè)概念中也是絕大多數(shù)人無(wú)法區(qū)分到底它們兩者之間有何區(qū)別,我什么時(shí)候使用On,什么時(shí)候使用where,下面將分別展示兩者的異同。

ON的使用無(wú)論是左右內(nèi)全都使用到了On來(lái)進(jìn)行關(guān)聯(lián):

對(duì)于Inner Join 的作用就是起到了與where相同的作用條件篩選:

select * from Students s inner JOIN Class c on s.ClassId=c.ClassId and s.Sex='男'

對(duì)于左右連接而言,無(wú)論查詢條件是否滿足都會(huì)返回對(duì)應(yīng)所指向的那邊的所有數(shù)據(jù):

select * from Students s left join Class c on s.ClassId=c.ClassId and s.Sex='男'

對(duì)于Full Join 而言無(wú)論,只有同時(shí)滿足的時(shí)候才會(huì)返回全部關(guān)聯(lián)的數(shù)據(jù),假如有一方不滿足返回以左邊的表數(shù)據(jù)為基準(zhǔn)返回:

--全連接
select * from Students s full join Class c on s.ClassId=c.ClassId 
--全連接加on查詢
select * from Students s full join Class c on s.ClassId=c.ClassId and s.Sex='男'

where的用法就不描述了因?yàn)檫@個(gè)咱們用的都比較多,下面說(shuō)明一下兩者的概念問(wèn)題:

1、on條件是在生成臨時(shí)表時(shí)使用的條件,它不管on中的條件是否為真,都會(huì)返回左邊表中的記錄(以左連接為例)。
2、where條件是在臨時(shí)表生成好后,再對(duì)臨時(shí)表產(chǎn)生的數(shù)據(jù)進(jìn)行過(guò)濾條件篩選。

結(jié)論:on用作于生成臨時(shí)表時(shí)的條件篩選,where用作于對(duì)臨時(shí)表中的記錄進(jìn)行過(guò)濾。

總結(jié):

  最后我想說(shuō)的是,有時(shí)候我們總認(rèn)為概念性的東西很簡(jiǎn)單而忽視了實(shí)踐。其實(shí)往往一些基礎(chǔ)性的東西才是為我們往后構(gòu)建萬(wàn)丈高樓的前提,堅(jiān)持多實(shí)踐、多動(dòng)手,你會(huì)發(fā)現(xiàn)其實(shí)這些問(wèn)題并不難。


該文章在 2023/10/8 8:55:23 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved