MySQL的内,外,自连接复习

文章介绍了如何使用SQL查询员工的薪资等级和上级领导,通过内连接实现匹配查询,然后引出外连接的概念,以确保包含所有员工信息,即使他们的领导信息可能为空。同时,作者分享了复习数据库基础知识和计划学习更多编程技能的计划。
摘要由CSDN通过智能技术生成

目录

1.找出每个员工的薪资等级,要求显示员工名,薪资,薪资等级 

2.查询员工的上级领导,要求显示员工名和对应的领导名

外连接的引入

五月 


1.找出每个员工的薪资等级,要求显示员工名,薪资,薪资等级 

这道题是内连接中的非等值连接(join前的inner是可以省略的)

1. 将emp表记作e,salgrade表记作s;

2. 连接条件:e表的薪资(sal)在  s表的薪资等级对应的范围内

  e.sal between s.losal and hisal

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

2.查询员工的上级领导,要求显示员工名和对应的领导名

empno是对应人的编号,ename是每个人的名字,mgr表示该员工对应的领导的编号。

内连接一张表看作两张表。


emp a表看作员工表,emp b 表看作领导表 ,

用员工表(a)的 对应领导编号(mgr) 找领导表(b)中找对应的编号(empno) 所对应的人名(ename)

连接条件:a.mgr=b.empno

select 
    a.ename as '员工名' ,b.empno as '领导名' 
from 
    emp a 
join 
    emp b 
on 
    a.mgr=b.empno ;

打印结果:

外连接的引入

在这里我们发现少了一个员工KING(KING所对应的领导是NULL),也就是说内连接只能找出匹配条件的信息(没有主次关系),但是我们有时候是需要全部信息。

所以我们就可以引入外连接【left (outer) join / right (outer) join ,outer一般就省略了 】,left join 就表示左边是主表(左连接和右连接是可以相互转换的),无论是否与辅表内容匹配都得打印。

eg:现在主查a表中的员工名,捎带b表中的领导名,就 a left join b,

查询员工的上级领导,要求显示所有员工名和对应的领导名

子查询可参考http://t.csdn.cn/3yCnd 

五月 

这个月51假玩了五天,这周期中考试,还没考完(😭),打算这周内复习完数据库基础并且完成操作系统中进程,线程等知识的总结,复习一下常见的排序方法,强化写代码的能力(再练几个题)。时间太快了,俩月都过去了,不能再分心了......

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sqyaa.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值