• MySqL速成教程笔记系列八


    外连接

    (1) 例子:
    select e.ename,d,dname from emp e right join dept d on e.deptno = d.deptno;
    在这里插入图片描述
    right 代表:表示将join关键字右边的这张表看成主表,主要是为了将这张表的数据全部查询出来,捎带着关联查询左边的表。

    带有left的是左外连接。
    任何一个右连接都有左连接的写法。
    任何一个左连接都有右连接的写法。
    左外连接可以写成left outer join
    右外连接可以写成right outer join

    (2) 例子:查询每个员工的上级领导,要求显示所有员工的名字和领导名。
    select a.ename as ‘员工名’ , b.ename as ‘领导名’ from emp a left join emp b on a.mgr = b.empno;
    在这里插入图片描述

    三张表,四张表怎么连接呢?

    select ……
    from a
    join b on a和b的连接条件
    join c on a和c的连接条件
    join d on a和d的连接条件

    一条SQL中内连接和外连接可以混合,都可以出现

    (1)案例:找出每个员工的部门名称以及工资等级,要求显示员工名、部门名、薪资、薪资等级。
    select e.ename,e.sal,d.dname,s.grade
    from emp e
    join dept d
    on e.deptno = d.deptno
    join salgrade s
    on e.sal between s.losal and s.hisal;
    在这里插入图片描述

    子查询

    (1)select 语句中嵌套select 语句,被嵌套的select语句称为子查询

    (2)子查询都可以出现在哪里呢?
    select……(select)
    from……(select)
    where……(select)

    (3)where子句中的子查询
    案例:找出比最低工资高的员工姓名和工资

    select ename,sal from emp where sal>min(sal);
    会报错!!!
    where子句中不能直接使用分组函数

    实现思路:
    第一步:查询最低工资是多少
    select min(sal) from emp;
    在这里插入图片描述

    第二步:找出>800的
    select ename,sal from emp where sal>800;
    在这里插入图片描述

    第三步:合并
    select ename,sal from emp where sal > (select min(sal) from emp);
    在这里插入图片描述
    (4) from子句中的子查询
    注意:from 后面的子查询,可以将子查询的查询结果当作一张临时表

    案例:找出每个岗位的平均工资的薪资等级

    第一步:找出每个岗位的平均工资(按照岗位分组求平均值)
    select job,avg(sal) from emp group by job;
    在这里插入图片描述
    第二步:将上表和工资等级表进行连接。条件为平均工资在losal和hisal之间
    select s.grade,t.* from
    (select job,avg(sal) as avgsal from emp group by job
    ) t
    join salgrade s on
    t.avgsal between s.losal and s.hisal;
    在这里插入图片描述
    (5)select后面的子查询
    例子:找出每个员工的部门名称,显示员工名,部门名
    select e.ename,(select d.dname from dept d where e.deptno = d.deptno) as dname from emp e;
    在这里插入图片描述
    注意:对于select后面的子查询来说,这个子查询只能一次返回一条结果,多于1条就会报错。
    例:
    select e.ename,e.deptno,(select dname from dept) as dname from emp e;

  • 相关阅读:
    模式分类识别 | BP神经网络多特征分类预测(Matlab完整程序)
    文字识别ORC与公式识别
    LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment
    仅仅只是用脱虚向实或者脱实向虚来诠释和表达产业互联网是不全面的
    S-2K2001 pmon调试
    分库分表系列:分库分表的前世今生
    融云 CDN 播放器 2.0 版本正式上线
    项目问题——Error during artifact deployment. See server log for details.
    锐捷链路聚合实验配置
    Redis7的数据结构
  • 原文地址:https://blog.csdn.net/weixin_54248223/article/details/127555110