一、表的加法
加法:UNION
语法:
SELECT
二、表的连接
语法:
SELECT
内连接(★): INNER
外连接:
左外(★): LEFT 【 OUTER 】
右外(★): RIGHT 【 OUTER 】
全外: FULL 【 OUTER 】
交叉连接:cross
1.内连接
SELECT
分类:
等值、非等值、自连接
特点:
①添加排序、分组、筛选
②INNER可以省略
③筛选条件放在 WHERE后面,连接条件放在 ON后面,提高分离性,便于阅读
2.外连接
应用场景:用于查询一个表中有,另一个表中没有的记录
特点:
1、外连接的查询结果为主表中的所有记录
如果从表中有和主表匹配的,则显示匹配的值
如果从表中没有和主表匹配的,则显示 NULL
外连接查询结果=内连接查询结果+主表中有而从表中没有的记录
2、左外连接,left左边的是主表
右外连接,right join右边的是主表
3、左外和右外交换两个表的顺序,可以实现同样的效果
4、全外连接=内连接的结果+表1中有但表2没有的+表2中有但表1中没有的
3.交叉连接
SELECT
三、CASE函数
使用一:
CASE
使用二:类似于多重IF
CASE
四、练习
SELECT DISTINCT player
FROM game
INNER JOIN goal
ON id=matchid
WHERE (team1='GER' AND team2=teamid)
OR (team2='GER' AND team1=teamid);
查找出所有比赛的日期,每场比赛中对战双方各自的进球数(也就是team1进球数,team2进球数)
问题分析:
当比赛信息表game中的球队编号(team1)也出现在进球信息表(goal)中时,表示这个球队进球了,使用case语句来统计
SELECT