两个sql交集_sql的高级命令运用
依舊準備好三張有關聯的表格:學生表t_student,班級表t_class,成績表t_grade
回顧:多表聯查,select a.id,a.sname,b.cname,c.chinese,c.math,c.english from tstudent a a join t_class b on a.cid=b.id join t_grade c on c.sid = a.id where c.chinese>100
一,sql分組group by的運用
問:假設統計以班級為分組,兩個班級的平均分
輸入命令:select b.cname,avg(c.chinese+c.math+c.english) a from tstudent a a join t_class b on a.cid=b.id join t_grade c on c.sid group by b.cname;
注意:分組group by 必須和聚合函數配合使用,不能單獨用
問:查詢出男女的人數和男女中最大的年齡
問:查詢出同名的人
注意:添加條件時,篩選分組后的數據用having,篩選分組前的用where
問:統計出每個班的語文成績大于100分的同學的語文平均分,并只顯示平均分高于110的班級
二,數據排序order by的運用
正序:asc(可省略) 倒序:desc
問:將學生表的學生按照年齡倒序排序
三,限制數據顯示limit的運用
如:select * from t_student limit 0,5
0,代表從哪條開始顯示,5,表示顯示多少條(0可省略)
問:統計出每個班語文平均分成績大于100的同學的班級語文平均分,然后顯示出平均分最高的班級
四,條件語句case when ...then... end 的運用
問:30歲以內顯示青年,30-60顯示壯年,60以上顯示老年
剩余可以用else
五,多表聯查的方式
1,內連接(join): 顯示的數據是取自兩表的交集(只顯示兩表關聯的上的字段)
2,外連接:取自兩表的并集
左連接(left join):顯示左表的所有數據和兩表關聯上的數據
右連接(right join):顯示右表的所有數據和兩表關聯上的數據
六,嵌套查詢
通過 把查詢結果作為表/條件/列 進行查詢
如:
總結
以上是生活随笔為你收集整理的两个sql交集_sql的高级命令运用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9.png(9位图)在android中作
- 下一篇: ViewPager 在 ScrollVi