happy birthday BNTang!

mysql 外连接

自连接:最大的特点是:一张表看做两张表。自己连接自己。

 

找出每个员工的上级领导,要求显示员工名和对应的领导名。

select e.ename,ee.ename from emp e join emp ee on e.mgr=ee.empno; 

 

 

外连接最重要的特点是:主表的数据无条件的全部查询出来。就是包括null再内 如果没找到 用null代替  就不会减少查询出来的结果数量

 

找出每个部门平均的薪水等级

1.先找出每个员工的薪水等级

select e.ename,s.grade,e.deptno from emp e join  salgrade s on e.sal between s.losal and hisal;

2.再按部门给员工分组

     select avg( s.grade),s.deptno,s.ename from (select e.ename,s.grade,e.deptno from emp e join  salgrade s on e.sal between s.losal and hisal) s group by s.deptno;

 

 

 

找出工作岗位是MANAGER和SALESMAN的员工?

select ename,job from emp where job in('SALESMAN', 'MANAGER');

 

 

5、limit (重点中的重点,以后分页查询全靠它了。)

5.1、limit是mysql特有的,其他数据库中没有,不通用。(Oracle中有一个相同的机制,叫做rownum)

5.2、limit取结果集中的部分数据,这时它的作用。

5.3、语法机制:
limit startIndex, length
startIndex表示起始位置,从0开始,0表示第一条数据。
length表示取几个

    案例:取出工资前5名的员工(思路:降序取前5个)

    select sal from emp group by sal asc limit 0,5;

    

 

posted @   look-word  阅读(550)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示