一 表的加法(union)
Union會去除重複資料
select 課程号,課程名稱 from course union select 課程号,課程名稱 from course1;
Union all 保留重複資料
select 課程号,課程名稱 from course union all select 課程号,課程名稱 from course1
二 表的連結(join)
cross join 笛卡爾積 :所有行可能的排列組合
内連結(inner join)隻取出符合條件的行交叉連結
select a.學号, b.課程号
from student as a inner join score as b
on a.學号= b.學号;
外連結: 左連接配接 右連結 左/右連結 以左表/右表為基表
左連接配接 取出左表,再取出右表所有複合條件的行進行連結。
右連結 同理
select a.學号, b.課程号
from student as a left join score as b
on a.學号= b.學号
where b.學号 is null;
全連結 full join
MySQL沒有該功能。取出所有行,兩表無法match的地方null
三 連結應用案例
練習
1.查詢出所有學生的學号,姓名,選課數,總成績
學号,姓名 在 student表
選課數 count(distinct課程号) group by 學号 在 score 表
總成績 sum(score) group by 學号 在score表
2.
學生的學号,姓名 在student表 按學号分組,平均成績>85:avg(score) group by a.學号
3
學号,姓名 在 student 表
學号, 課程号 在score表
課程号,課程名稱在course表
四 case when表達式
當有多種情況需要條件判斷的時候需要case when 表達式
練習1
2
SQLZOO 練習