gtxyzz

Oracle SQL1-子查询改为表连接

gtxyzz zabbix 2023-02-27 791浏览 0

  开场白,本系列非SQL入门,也就是说有些SQL相对也不是太简单;也不是SQL改写调优,也就意味着有很多SQL的执行效率可能比较低。本系列是从书上看到的一些相对感觉比较复杂的SQL的摘抄笔记。

  本系列第一篇,本文的数据是自己模拟的,没有比较合理的业务逻辑,大家凑合着看吧。好了,直接上数据脚本和SQL文。

  SQL中有描述的错误和不准确的地方,还请各位大神不吝指教。

  另外,本系列是读书笔记,难免摘抄书中的例子,如果涉及版权问题,本人会立即删除。在这里也谢谢各位著书者。

  1,子查询改为连接查询,减少表的读取次数

create table emp (empno varchar2(10),ename varchar2(10),sal varchar2(10),deptno varchar2(10));
commit;
insert into EMP (EMPNO, ENAME, SAL, DEPTNO)
values ('E01', 'NE01', '1000', 'D01');
insert into EMP (EMPNO, ENAME, SAL, DEPTNO)
values ('E02', 'NE02', '2000', 'D01');
insert into EMP (EMPNO, ENAME, SAL, DEPTNO)
values ('E03', 'NE03', '3000', 'D01');
insert into EMP (EMPNO, ENAME, SAL, DEPTNO)
values ('E04', 'NE04', '4000', 'D01');
insert into EMP (EMPNO, ENAME, SAL, DEPTNO)
values ('E05', 'NE05', '5000', 'D02');
insert into EMP (EMPNO, ENAME, SAL, DEPTNO)
values ('E06', 'NE06', '6000', 'D02');
commit;

create table dept (deptno varchar2(10),dname varchar2(10));
commit;
insert into DEPT (DEPTNO, DNAME)
values ('D01', 'ND01');
insert into DEPT (DEPTNO, DNAME)
values ('D02', 'ND02');
insert into DEPT (DEPTNO, DNAME)
values ('D04', 'ND03');
insert into DEPT (DEPTNO, DNAME)
values ('D04', 'ND04');
commit;

数据脚本1

继续浏览有关 数据库技术文章/教程 的文章
发表评论