天涯论坛

 找回密码
 立即注册
搜索
查看: 71|回复: 2

【SQL】SQL语句中的连接查询

[复制链接]

2999

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109184
发表于 2024-8-4 15:32:12 | 显示全部楼层 |阅读模式
数据库建表过程中为了减少许据冗余,一般会将字段放在区别的表中。因此呢为了从多表中取数据,连接查找便是SQL查找语句中最平常、运用最广泛的查找技巧。连接查找能够根据两种归类方式。其一是按照连接语法显现的年代,将查找分为SQL92语法和SQL99语法。其二是按照表的连接方式划分,将查找分为内连接、外连接及全连接,下图为连接方式的细分。下述案例中用到的emp表为

下述案例中用到的分部表dept为

内连接之等值连接案例:找出每一个员工的分部叫作需求表示员工名和分部名。经过这道案例题,首要感受一下SQL92语法暗示内连接的等值连接。select ename, dname from emp e, dept d where e.deptno = d.deptno;下面用SQL99语法进行改写。select ename,dname from emp e inner join dept on e.deptno = d.deptno;不管是SQL92语法还是SQL99语法,emp表和dept表连接的要求都是等号,因此叫作之为等值连接。而SQL99语法为select xxx from A表 inner join B表 on 连接要求 where 筛选要求;经过语法格式能够发掘,其将连接要求放在on后面,从而和where后面的筛选要求掰开,更加清晰、明了。内连接之非等值连接案例:找出每一个员工的工资等级,需求表示员工名、工资、工资等级。select e.ename, e.sal, s.salgrade from emp e inner join sal s on e.sal between s.lowsal between s.hisal;经过以上SQL99查找语句能够发掘,on后面紧跟的连接要求是between ... and ...语句,显然是非等值语句。另一,非等值要求能够是>、< 、<>等。内连接之自连接案例:表示员工姓名和上级领导。select e1.ename, e2.ename from emp e1 inner join emp e2 on e1.mgr = e2.empno;以上查找语句能够看出emp表完成为了自连接,即能够将其同期看作e1表和e2表的连接。查找结果:

然则这条查找语句只能查出13条记录,由于KING的领导为空,而在内连接中,倘若连接字段中的数据显现空,那样查找不出这条记录。而想要查出所有数据就要用到外连接。外连接之左外连接关于外连接咱们要弄清楚两点内容。首要第1点是内连接与外连接的区别。假设A和B进行连接,运用内连接,凡是A表和B表能够匹配上的记录查找出来。AB两张表主副之分,两张表是平等的。假设A和B两张表进行连接,运用外连接的话,AB两张表有一张是主表,一张是副表,重点查找主表中的数据,捎带着查找附表。当附表中的数据和主表中的数据匹配上,副表会自动用null与之匹配。以上自连接运用的案例采用的是内连接,因此当员工king的领导编号为空时,员工king的记录就不会被匹配出来。然则倘若运用外连接,SQL语句改为:select e1.ename, e2.ename from emp e1 left join emp e2 on e1.mgr = e2.empno;查找结果为:

经过查找结果能够发掘一共产生了14条记录,其中king的领导是null即为空。便是说,运用外连接,副表中的数据都不可和主表匹配时,会自动产生null与之对应。下面弄清楚第二点,便是外连接又分为左外连接和右外连接。她们的区别便是倘若用left join,那样left join左边的表便是主表,右边显现的表是副表。而right join暗示左边显现的表是副表而右边显现的表是主表。还是拿下述SQL做参考。select e1.ename, e2.ename from emp e1 left join emp e2 on e1.mgr = e2.empno;e1出此刻left join左边,因此其是主表而e2为副表。END




上一篇:【Access】SQL语句中左(外)连接的运用
下一篇:PTE8炸经验:SST句子之间用规律连接词链接,前提是你听懂的状况下
回复

使用道具 举报

3053

主题

3万

回帖

9910万

积分

论坛元老

Rank: 8Rank: 8

积分
99109022
发表于 2024-9-25 20:06:10 | 显示全部楼层
外贸B2B平台有哪些?
回复

使用道具 举报

3091

主题

3万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098764
发表于 2024-10-14 17:44:59 | 显示全部楼层
期待你更多的精彩评论,一起交流学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-23 23:19 , Processed in 0.153509 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.