学习内容
- 表的加法
- UNION
- 表的联结
- case表达式
一、合并两张表
UNION:将两张表中的数据按行合并在一起(重复的数据只保留一个)。
UNION ALL:按行合并两张表中的全部数据(保留重复数据)。
-- UNION 语法
SELECT 课程号, 课程名称
FROM course
UNION
SELECT 课程号, 课程名称
FROM course1;
-- UNION ALL 语法
SELECT 课程号, 课程名称
FROM course
UNION ALL
SELECT 课程号, 课程名称
FROM course1;
二、表的联结
- 交叉联结(cross join)/笛卡尔积
将表1中的每一行与表的每一行相乘组合起来。新表的行数为表1行数 * 表2行数
2. 内联结(inner join)
查找出同时存在于两张表中的数据(交集)。
-- 语法。join和inner join相同
SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;
-- 举例
SELECT a.学号, a.姓名, b.课程号
FROM student as a
INNER JOIN score as b
ON a.学号 = b.学号;
3. 左联结(left join)
返回左表(table1)中所有的行和匹配的行。即使右表(