
“
每天一个测试技术
只需几分钟
川石信息 带你学点更好的


川石信息|腾讯课堂
免费试学 | 性能测试
等值连接
SQL> ---查询出员工和员工的部门的名称是什么(涉及两个表emp,dept的联合查询,找等值条件 emp.deptno = dept.deptno)
SQL> ---1.等值查询
SQL> select e.*,d.dname from emp e,dept d where e.deptno = d.deptno;
复制
左右拉动查看完整代码
笛卡尔积,笛卡尔积(没有等值条件) emp 14条 dept 4条 结果 14*4 = 56条记录
SQL> select e.empno,e.ename,d.dname from emp e,dept d;
复制
左右拉动查看完整代码
内连接(和等值查询的结果一样) inner join
SQL> select e.empno,e.ename,d.dname from emp e inner join dept d on e.deptno = d.deptno;
复制
左右拉动查看完整代码
外连接 left [outer] join 左外联,right [outer] join 右外联,full join完全连接
left [outer] join 左外联:
rows selected
SQL> ----3.left [outer] join 左外联,以左表为准 emp e left join dept d,left join左边的emp为左表,left join右边 dept为右表
SQL> 左外联,以左表emp为准,不管关联的字段deptno是否在右表dept中是否有对应的数据,左表emp的数据全部要显示(注意:查询结果合理,实战中推荐使用左外联)
左外联,以左表emp为准,不管关联的字段deptno是否在右表dept中是否有对应的数据,左表emp的数据全部要显示
SQL> select e.empno,e.ename,d.dname from emp e left join dept d on e.deptno = d.deptno;
复制
左右拉动查看完整代码
right [outer] join 右外联,右外联,以右表dept为准,不管关联的字段deptno是否在左表emp中是否有对应的数据,右表dept的数据全部要显示,坐标emp中关联的deptno为null的记录不显示
full [outer] join 完全连接 都要显示左表和右表的数据,不管左表emp的关联字段deptno为null,还是右表dept的数据deptno=40被左表emp引用(注意:mysql不支持)
联合查询中的三表联合查询
SQL> select e.empno,e.ename,e.job,e.sal,d.dname,g.grade
2 from emp e
3 left join dept d on e.deptno = d.deptno
4 left join salgrade g on e.sal between g.losal and g.hisal
5 order by e.empno
6 ;
复制
左右拉动查看完整代码
如何使用(+)进行多表查询(注意:该语法在别的数据库不支持,所以不通用,不推荐使用)
SQL> select e.empno, e.ename, d.deptno, d.dname
2 from emp e, dept d
3 where e.deptno(+) = d.deptno;
EMPNO ENAME DEPTNO DNAME
----- ---------- ------ --------------
7499 ALLEN 30 SALES
7521 WARD 30 SALES
7566 JONES 20 RESEARCH
7654 MARTIN 30 SALES
7698 BLAKE 30 SALES
7782 CLARK 10 ACCOUNTING
7788 SCOTT 20 RESEARCH
7844 TURNER 30 SALES
7876 ADAMS 20 RESEARCH
7900 JAMES 30 SALES
7902 FORD 20 RESEARCH
7934 MILLER 10 ACCOUNTING
7839 KING 10 ACCOUNTING
40 OPERATIONS
14 rows selected
复制
左右拉动查看完整代码
使用using来实现联合查询
SQL> select e.empno,e.ename,d.deptno,d.dname from emp e inner join dept d using(deptno);
select e.empno,e.ename,d.deptno,d.dname from emp e inner join dept d using(deptno)
ORA-25154: USING 子句的列部分不能有限定词
SQL> select e.empno,e.ename,deptno,d.dname from emp e inner join dept d using(deptno);
EMPNO ENAME DEPTNO DNAME
----- ---------- ------ --------------
7499 ALLEN 30 SALES
7521 WARD 30 SALES
7566 JONES 20 RESEARCH
7654 MARTIN 30 SALES
7698 BLAKE 30 SALES
7782 CLARK 10 ACCOUNTING
7788 SCOTT 20 RESEARCH
7844 TURNER 30 SALES
7876 ADAMS 20 RESEARCH
7900 JAMES 30 SALES
7902 FORD 20 RESEARCH
7934 MILLER 10 ACCOUNTING
7839 KING 10 ACCOUNTING
13 rows selected
SQL>
复制
左右拉动查看完整代码
今天的内容就学习到这里了,每个工作日小编都会更新一个有关测试的小知识,希望大家多多关注我们,一起来学习喔!
温馨提示:添加老师微信【13691729932】可以获取全套软件测试自学资料!
往期回顾
扫码邀你加入
软件测试群
免费软件测试课
川石课堂
文章转载自西安川石,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
785次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
662次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
591次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
544次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
530次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
509次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
495次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
468次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
382次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
381次阅读
2025-05-05 19:28:36