成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL中的各種連接的區別總結

開發 前端
我們可能用的比較多的也就是左右連接和內連接了,而且對于許多初學者而言不知道什么時候該用哪種語法進行查詢,并且對于左右,或者內連接查詢的時候關于ON 和Where 的作用也是模糊不清的,說不出其中的一個大概的差別,因此接下來請容我把它們好好描述一遍。

前言

  今天主要的內容是要講解SQL中關于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where區別和用法,不用我說其實前面的這些基本SQL語法各位攻城獅基本上都用過。但是往往我們可能用的比較多的也就是左右連接和內連接了,而且對于許多初學者而言不知道什么時候該用哪種語法進行查詢,并且對于左右,或者內連接查詢的時候關于ON 和Where 的作用也是模糊不清的,說不出其中的一個大概的差別,因此接下來請容我把它們好好描述一遍。

數據庫(MS Sql Server)表結構和對應數據

Students 學生表:

圖片圖片

Class 班級表:

圖片圖片

Join(where聯立查詢)

概念:用于兩表或多表之間數據聯立查詢。

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

圖片圖片

Inner Join(內連接查詢)

概念:與Join相同,兩表或多表之間聯立查詢數據,因此我們在使用多表join查詢的時候既可以使用where關聯,也可以是inner join關聯查詢。

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

圖片圖片

Left Join(左連接查詢)

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

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

圖片圖片

Right Join(右連接查詢)

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

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

圖片圖片

Full Join(全連接查詢)

概念:返回表中所有的數據數據,無論匹配與否。

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

圖片圖片

On、Where的異同

這兩個概念中也是絕大多數人無法區分到底它們兩者之間有何區別,我什么時候使用On,什么時候使用Where,下面將分別展示兩者的異同。

ON的使用無論是左右內全都使用到了On來進行關聯:

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

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

圖片圖片

對于左右連接而言,無論查詢條件是否滿足都會返回對應所指向的那邊的所有數據:

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

圖片圖片

對于Full Join 而言無論,只有同時滿足的時候才會返回全部關聯的數據,假如有一方不滿足返回以左邊的表數據為基準返回:

--全連接
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的用法就不描述了因為這個咱們用的都比較多,下面說明一下兩者的概念問題:

1、on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄(以左連接為例)。

2、where條件是在臨時表生成好后,再對臨時表產生的數據進行過濾條件篩選。

結論:on用作于生成臨時表時的條件篩選,where用作于對臨時表中的記錄進行過濾。

總結:

最后我想說的是,有時候我們總認為概念性的東西很簡單而忽視了實踐。其實往往一些基礎性的東西才是為我們往后構建萬丈高樓的前提,堅持多實踐、多動手,你會發現其實這些問題并不難。

責任編輯:武曉燕 來源: 追逐時光者
相關推薦

2025-03-17 08:15:27

SQLJOIN連接

2019-04-16 15:18:28

SQLJOIN數據庫

2010-11-08 15:47:01

SQL Server外

2010-11-11 13:51:36

SQL Server內

2009-05-12 10:55:06

SQLFOR XML模式

2017-10-20 11:12:12

數據類型關鍵字對象

2009-06-16 15:03:53

Hibernate保存Hibernate

2024-07-25 09:20:00

地圖場景

2010-11-08 15:50:16

SQL2005連接字符

2021-05-06 09:18:18

SQL自連接數據

2023-02-04 20:08:24

前端開發

2024-10-22 17:04:31

2015-08-26 10:13:55

排序算法總結

2010-09-09 15:51:22

sqlinner join語法

2016-03-21 17:08:54

Java Spring注解區別

2010-03-22 10:56:26

各種交換機

2017-07-21 14:35:22

Android瓶頸

2010-09-24 18:03:38

SQL中EXISTS

2010-09-09 11:32:26

SQL函數StDev

2010-09-06 15:41:34

SQL函數存儲過程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费看片国产 | 96av麻豆蜜桃一区二区 | 在线看一区二区三区 | 国产精品久久久久9999鸭 | 色婷婷久久久亚洲一区二区三区 | 欧美日韩精品国产 | 欧美视频在线观看 | 亚洲一区二区三区视频 | 波多野结衣一区二区三区 | 99热热99| 亚洲人在线 | 亚洲一区二区在线视频 | 999视频在线播放 | 女人av| 中文字幕av亚洲精品一部二部 | 99视频在线免费观看 | 天天插天天操 | 亚洲欧洲视频 | 国产精品久久久久久久久图文区 | 久久久久久久久蜜桃 | 亚洲精品68久久久一区 | a成人| 农村真人裸体丰满少妇毛片 | 四虎永久免费在线 | 麻豆视频在线免费看 | 亚洲精品大全 | 九九热在线观看 | www国产成人 | 天天操夜夜操免费视频 | 色欧美片视频在线观看 | 久久综合九九 | 日韩久久久久久久久久久 | 精品欧美一区二区精品久久久 | 国产精品视频入口 | 亚洲国产精品一区二区三区 | 爱爱免费视频 | 日韩免费一二三区 | 久久亚洲国产精品日日av夜夜 | 欧美在线不卡 | 日韩国产一区二区 | 亚洲日本国产 |