日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

查询列名在哪张表_探索SQL-多表查询

發布時間:2025/3/8 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查询列名在哪张表_探索SQL-多表查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、表的加法(Union)

1、用法:將兩個表合并成一個表

2、語句:

select 查詢結果 from 從哪張表查詢 union select 查詢結果 from 從哪張表查詢

*需保留重復行*

select 查詢結果 from 從哪張表查詢 union all select 查詢結果 from 從哪張表查詢

練習:

將課程表及課程表1合并在一起

課程表1:

課程表2:

合并結果:

1)不保留重復行

2)保留重復行

二、表的聯結

聯結:表和表之間是通過列產生關系,聯結就是通過表和表之間關系將兩個表合并在一起的操作。

表的聯結分為:交叉聯結(cross join)、內聯結(inner join)、左聯結(left join)、右聯結(right join)、全聯結(full join);內聯結、左聯結、右聯結這3種是較常用的聯結方法。

1、交叉聯結(cross join)

將表的每一行與另一個表的每一行聯結在一起,行數是兩個表行數的乘積;不常用,結果行數太多。

2、內聯結(inner join)

查找出同時存在于兩張表的數據。

語句:

select.... from 表1 as a inner join 表2 as b on a.列名=b.列名;

3、左聯結(left join)

將左側的表作為主表,主表中的數據全部讀取出來,右邊的表只選取與主表有相同列的表。

語句:

select.... from 表1 as a left join 表2 as b on a.列名=b.列名;

*在左聯結基礎上去掉兩表共同的部分*

select.... from 表1 as a left join 表2 as b on a.列名=b.列名 where b.列名 is null;

4、右聯結(right join)

將右表作為主表,主表中的數據全部讀取出來,左邊的表只選取與主表有相同列的表。

語句:

select.... from 表1 as a right join 表2 as b on a.列名=b.列名;

*在右聯結基礎上去掉兩表共同的部分*

select.... from 表1 as a right join 表2 as b on a.列名=b.列名 where b.列名 is null;

5、全聯結(full join)

返回左表和右表中所有的行,當某行與另一表中有匹配的行,兩行會進行合并,當某行與另一表中無匹配行,另一表對應的行會填充成空值;mysql不支持全聯結。

練習:

1、用內聯結將學生和成績表合并在一起

2、用左聯結將學生和成績表合并在一起

*在左聯結基礎上去掉兩表共同的部分*

3、用右聯結將學生和成績表合并在一起

*在右聯結基礎上去掉兩表共同的部分*

score表中的所有學號student表中都涵蓋了,因此去掉共同部分會顯示空值

三、聯結應用案例

1、查詢所有學生的學號、姓名、選課數、總成績

2、查詢平均成績大于85的所有學生的學號、姓名和平均成績

3、查詢學生的選課情況:學號、姓名、課程號、課程名稱

四、case表達式

使用case表達式可以幫助處理復雜的查詢問題,相當于一個條件判斷的函數,判斷每一行是不是滿足某一條件。

1、注意事項:

1)else可以省略不寫,默認為else為空值,最好不省略;

2)end不可以省略。

2、如何使用

當有多種情況需要條件判斷時使用,可以用于sql語句的任意語句中。

練習:

1、查詢出每門課程的及格人數和不及格人數

2、使用分段[100-85]、[85-70]、[70-60]、[<60]來統計各科成績,分別統計各分數段人數:課程ID和課程名稱

五、sqlzoo練習

JOIN

總結

以上是生活随笔為你收集整理的查询列名在哪张表_探索SQL-多表查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。