MySQL之——连接查询

链接查询

        多表链接查询就是从多个表中获取数据,若两张表进行连接查询的时候,没有任何条件限制,最终查询结果总数是两张表记录的乘积,成为笛卡尔积

#展示员工信息和所在部门信息 14个员工 4各部门 笛卡尔积:14*4 = 56
select * from emp,deptno;

内连接

        根据连接条件从多个表中查询选择数据,显示这些表中与连接条件相匹配的行,组成新的记录。

分类:

  • 等值连接:连接条件为相等判断的
  • 非等值连接:连接条件不为相等判断的
  • 自连接:在一个连接查询中,涉及两个表都是同一张表的查询,自连接是一种特殊的连接查询,它指相互连接的表在物理上为同一张表,在逻辑上分为两张表。 
select 字段1[,字段2...] from 表1 join 表2 on 条件语句
select * from emp join dept
on emp.deptno = dept.deptno;

select * from emp,dept
where emp.deptno = dept.deptno;     #连接条件:emp.deptno = dept.deptno

select ename,emp.deptno,dname 
from emp join dept
on emp.deptno = dept.deptno;        #显示ename,emp表中的deptno(两个表中都有deptno),dname       

#非等值连接:查询员工薪水等级
select e.ename,e.sal,s.grade        
from emp e join salgrade s            #将emp 起别名 e,salgrade 起别名 s
on e.sal between s.losal and s.hisal;

#自连接:查询员工所对应的领导名称
select e1.ename,e2.ename mgr_name        #物理上一个表 逻辑上两个不同的表
from emp e1 join emp e2
on e1.mgr = e2.empno

外连接

        A表和B表能够完全匹配的记录查询出来之外,将其中一张表的记录无条件的完全查询出来对方表没有匹配的记录时会自动模拟出null值与之匹配

同时:外连接的查询结果条数 >= 内连接的查询结果条数

  • 左外连接 left [outer] join 显示左表全部记录,右表满足连接条件的记录

  • 右外连接 right [outer] join 显示右表全部记录,左表满足条件的记录 

#查询员工所对应的领导名称
select e1.ename,e2.ename mgr_name
from emp e1 left join emp e2
on e1.mgr = e2.empno; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Coke_3.2.2

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

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

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

打赏作者

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

抵扣说明:

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

余额充值