文章目录
🎉多表查询
🎈3.1 内连接查询
- 语法
-- 隐式内连接SELECT 字段列表 FROM 表1,表2… WHERE 条件;-- 显示内连接SELECT 字段列表 FROM 表1[INNER]JOIN 表2ON 条件;
内连接相当于查询 A B 交集数据
- 案例- 隐式内连接
SELECT*FROM emp, deptWHERE emp.dep_id = dept.did;
执行上述语句结果如下:- 查询 emp的 name, gender,dept表的dnameSELECT emp. NAME, emp.gender, dept.dnameFROM emp, deptWHERE emp.dep_id = dept.did;
执行语句结果如下:上面语句中使用表名指定字段所属有点麻烦,sql也支持给表指别名,上述语句可以改进为SELECT t1. NAME, t1.gender, t2.dnameFROM emp t1, dept t2WHERE t1.dep_id = t2.did;
- 显式内连接select*from emp innerjoin dept on emp.dep_id = dept.did;-- 上面语句中的inner可以省略,可以书写为如下语句select*from emp join dept on emp.dep_id = dept.did;
执行结果如下:
🎈3.2 外连接查询
- 语法
-- 左外连接SELECT 字段列表 FROM 表1LEFT[OUTER]JOIN 表2ON 条件;-- 右外连接SELECT 字段列表 FROM 表1RIGHT[OUTER]JOIN 表2ON 条件;
> 左外连接:相当于查询A表所有数据和交集部分数据> > 右外连接:相当于查询B表所有数据和交集部分数据 - 案例- 查询emp表所有数据和对应的部门信息(左外连接)
select*from emp leftjoin dept on emp.dep_id = dept.did;
执行语句结果如下:结果显示查询到了左表(emp)中所有的数据及两张表能关联的数据。- 查询dept表所有数据和对应的员工信息(右外连接)select*from emp rightjoin dept on emp.dep_id = dept.did;
执行语句结果如下:结果显示查询到了右表(dept)中所有的数据及两张表能关联的数据。要查询出部门表中所有的数据,也可以通过左外连接实现,只需要将两个表的位置进行互换:select*from dept leftjoin emp on emp.dep_id = dept.did;
🎈3.3 子查询
- 概念查询中嵌套查询,称嵌套查询为子查询。什么是查询中嵌套查询呢?我们通过一个例子来看:需求:查询工资高于猪八戒的员工信息。来实现这个需求,我们就可以通过二步实现,第一步:先查询出来 猪八戒的工资
select salary from emp where name ='猪八戒'
第二步:查询工资高于猪八戒的员工信息select*from emp where salary >3600;
第二步中的3600可以通过第一步的sql查询出来,所以将3600用第一步的sql语句进行替换select*from emp where salary >(select salary from emp where name ='猪八戒');
这就是查询语句中嵌套查询语句。 - 子查询根据查询结果不同,作用不同- 子查询语句结果是单行单列,子查询语句作为条件值,使用 = != > < 等进行条件判断- 子查询语句结果是多行单列,子查询语句作为条件值,使用 in 等关键字进行条件判断- 子查询语句结果是多行多列,子查询语句作为虚拟表
- 案例- 查询 ‘财务部’ 和 ‘市场部’ 所有的员工信息
-- 查询 '财务部' 或者 '市场部' 所有的员工的部门didselect did from dept where dname ='财务部'or dname ='市场部';select*from emp where dep_id in(select did from dept where dname ='财务部'or dname ='市场部');
- 查询入职日期是 ‘2011-11-11’ 之后的员工信息和部门信息-- 查询入职日期是 '2011-11-11' 之后的员工信息select*from emp where join_date >'2011-11-11';-- 将上面语句的结果作为虚拟表和dept表进行内连接查询select*from(select*from emp where join_date >'2011-11-11') t1, dept where t1.dep_id = dept.did;
最后说一句
感谢大家的阅读,文章通过网络资源与自己的学习过程整理出来,希望能帮助到大家。
才疏学浅,难免会有纰漏,如果你发现了错误的地方,可以提出来,我会对其加以修改。
本文转载自: https://blog.csdn.net/m0_69383623/article/details/130187063
版权归原作者 黑洞晓威 所有, 如有侵权,请联系我们删除。
版权归原作者 黑洞晓威 所有, 如有侵权,请联系我们删除。