sql 查询上个月的数据_数据分析-SQL 进阶篇 多表查询
知識(shí)點(diǎn)
一、表的加法
Union:刪除表中的重復(fù)值
union al:包含表中所有內(nèi)容,包括重復(fù)值
二、表的聯(lián)結(jié)
聯(lián)結(jié):join
聯(lián)結(jié)分為以下五種:
交叉聯(lián)結(jié)(cross join)又稱為笛卡爾積:將表中的每一行與另外表中的每一行聯(lián)結(jié)在一起,結(jié)果的行數(shù)為兩表行數(shù)的乘積。典型例子:撲克牌,實(shí)際業(yè)務(wù)應(yīng)用較少,原因:a結(jié)果行數(shù)太多,需要花費(fèi)大量運(yùn)算成本和設(shè)備支持;b沒有實(shí)際價(jià)值;交叉聯(lián)結(jié)是其他聯(lián)結(jié)的基礎(chǔ)。
內(nèi)聯(lián)結(jié)(inner join):查找出同時(shí)存在于兩組中的數(shù)據(jù)
左聯(lián)結(jié)(left join):將左側(cè)表中的數(shù)據(jù)取出來,將左側(cè)表為主表,將左側(cè)表中的數(shù)據(jù)全部取出來,右邊的表中只選出和左邊相同的學(xué)號(hào)的行。
右聯(lián)結(jié)(right join):會(huì)將右側(cè)表中的數(shù)據(jù)全部取出來
修改:left join 改為right join
全聯(lián)結(jié)(full join):在SQL中無法應(yīng)用
三、聯(lián)結(jié)應(yīng)用案例
1、 查詢所有學(xué)生的學(xué)號(hào)、姓名、選課數(shù)、總成績(jī)
2、 查詢平均成績(jī)大于85的所有學(xué)生的學(xué)號(hào)、姓名和平均成績(jī)
3、 查詢學(xué)生的選課情況:學(xué)號(hào)、姓名、課程號(hào)、課程名稱
四、case表達(dá)式
作用:幫助解決復(fù)雜的查詢問題,相當(dāng)于進(jìn)行一個(gè)條件判斷的函數(shù),用來判斷每一行是否滿足某個(gè)條件。
在何種情況下使用:多種情況需要判斷時(shí)可以使用case表達(dá)式
注意:
1、 else子句可以省略不寫,默認(rèn)為空值,建議不省略;
2、 end 子句不可省略;
3、 case表達(dá)式看寫在SQL任意子句中。
練習(xí)題
1、 查詢所有學(xué)生的學(xué)號(hào)、姓名、選課數(shù)、總成績(jī)
2、 查詢平均成績(jī)大于85的所有學(xué)生的學(xué)號(hào)、姓名和平均成績(jī)
3、 查詢學(xué)生的選課情況:學(xué)號(hào)、姓名、課程號(hào)、課程名稱
4、 查詢出每門課程的及格人數(shù)和不及格人數(shù)
5、 使用分段【100-85】,【85-70】,【70-60】,【<60】來統(tǒng)計(jì)各科出成績(jī),分別統(tǒng)計(jì)各分段人數(shù):課程ID和課程名稱
6、SQLzoo練習(xí)
總結(jié)
以上是生活随笔為你收集整理的sql 查询上个月的数据_数据分析-SQL 进阶篇 多表查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的重点_python知识点
- 下一篇: mysql数据库安装在unix_Linu