一、多表连接查询
1.语法:
SELECT 字段列表
FROM 表1 INNER|LEFT|RIGHT JOIN 表2
ON 表1.字段 = 表2.字段;
2.生成笛卡尔积:不适用任何一种匹配规则
select * from employee,department; # 直接查询两个表
3.内连接:inner join,只连接匹配的行
4.外连接之左连接:left join,优先显示左表记录
5.外连接之右连接;优先显示右表全部记录
6.全外连接:显示左右两个表全部记录(了解)
#外连接:在内连接的基础上增加左边有右边没有的和右边有左边没有的结果
#注意:mysql不支持全外连接 full JOIN
#强调:mysql可以使用此种方式间接实现全外连接
select * from employee left join department on employee.dep_id = department.id
union all
select * from employee right join department on employee.dep_id = department.id;
select * from emp left join dep on emp.dep_id = dep.id
union
select * from emp right join dep on emp.dep_id = dep.id;
二、符合条件连接查询
根据where条件进行筛选查询。
三、子查询
1:子查询是将一个查询语句嵌套在另一个查询语句中。
2:内层查询语句的查询结果,可以为外层查询语句提供查询条件。
3:子查询中可以包含:IN、NOT IN、ANY、ALL、EXISTS 和 NOT EXISTS等关键字。
4:还可以包含比较运算符:= 、 !=、> 、<等。
参考博客:https://www.cnblogs.com/majj/p/9174404.html