`
java1573
  • 浏览: 121107 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

相关和非相关查询区别

阅读更多

相关和非相关查询区别
--求各部门人数
--格式:select d.*,0 人数 from dept d
select d.*,
(
  select count(*) from emp e
  where e.deptno=d.deptno
) 人数
from dept d

select d.* from dept d
部门:
10
select count(*) from emp e   where e.deptno=10
20
select count(*) from emp e   where e.deptno=20
30
select count(*) from emp e   where e.deptno=30
40
select count(*) from emp e   where e.deptno=40
50
select count(*) from emp e   where e.deptno=50
60
select count(*) from emp e   where e.deptno=60
对于部门表的每一条记录,都要单独执行一次子查询,所以称为相关子查询。

列出薪金比“SMITH”多的所有员工

select * from emp e
where e.sal>
(
  select e.sal from emp e  where e.ename='SMITH'
)
smith的值只求一次,这个值对于emp中所有记录都是一样的,即不与各记录相关,所以称为非相关子查询。


分析:效率高的是:非相关。
原因:相关子查询执行统计的次数太多。

分享到:
评论
1 楼 java1573 2007-10-12  
--测试数据(Oracle的scott模型)
prompt PL/SQL Developer import file
prompt Created on 2007-10-12 by Administrator
set feedback off
set define off
prompt Dropping DEPT...
drop table DEPT cascade constraints;
prompt Dropping EMP...
drop table EMP cascade constraints;
prompt Creating DEPT...
create table DEPT
(
  DEPTNO NUMBER(2) not null,
  DNAME  VARCHAR2(14),
  LOC    VARCHAR2(13)
)
;
alter table DEPT
  add constraint PK_DEPT primary key (DEPTNO);

prompt Creating EMP...
create table EMP
(
  EMPNO    NUMBER(4) not null,
  ENAME    VARCHAR2(10),
  JOB      VARCHAR2(9),
  MGR      NUMBER(4),
  HIREDATE DATE,
  SAL      NUMBER(7,2),
  COMM     NUMBER(7,2),
  DEPTNO   NUMBER(2)
)
;
alter table EMP
  add constraint PK_EMP primary key (EMPNO);
alter table EMP
  add constraint FK_DEPTNO foreign key (DEPTNO)
  references DEPT (DEPTNO);

prompt Disabling triggers for DEPT...
alter table DEPT disable all triggers;
prompt Disabling triggers for EMP...
alter table EMP disable all triggers;
prompt Disabling foreign key constraints for EMP...
alter table EMP disable constraint FK_DEPTNO;
prompt Loading DEPT...
insert into DEPT (DEPTNO, DNAME, LOC)
values (10, 'ACCOUNTING', 'NEW YORK');
insert into DEPT (DEPTNO, DNAME, LOC)
values (20, 'RESEARCH', 'DALLAS');
insert into DEPT (DEPTNO, DNAME, LOC)
values (30, 'SALES', 'CHICAGO');
insert into DEPT (DEPTNO, DNAME, LOC)
values (40, 'OPERATIONS', 'BOSTON');
insert into DEPT (DEPTNO, DNAME, LOC)
values (50, 'zhangyi', 'china');
insert into DEPT (DEPTNO, DNAME, LOC)
values (60, '陈伟林', null);
commit;
prompt 6 records loaded
prompt Loading EMP...
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980', 'dd-mm-yyyy'), 800, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-02-1981', 'dd-mm-yyyy'), 1600, 300, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7521, 'WARD', 'SALESMAN', 7698, to_date('22-02-1981', 'dd-mm-yyyy'), 1250, 500, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7566, 'JONES', 'MANAGER', 7839, to_date('02-04-1981', 'dd-mm-yyyy'), 2975, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-09-1981', 'dd-mm-yyyy'), 1250, 1400, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7698, 'BLAKE', 'MANAGER', 7839, to_date('01-05-1981', 'dd-mm-yyyy'), 2850, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7782, 'CLARK', 'MANAGER', 7839, to_date('09-06-1981', 'dd-mm-yyyy'), 2450, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7788, 'SCOTT', 'ANALYST', 7566, to_date('19-04-1987', 'dd-mm-yyyy'), 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981', 'dd-mm-yyyy'), 5000, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7844, 'TURNER', 'SALESMAN', 7698, to_date('08-09-1981', 'dd-mm-yyyy'), 1500, 0, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7876, 'ADAMS', 'CLERK', 7788, to_date('23-05-1987', 'dd-mm-yyyy'), 1100, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7900, 'JAMES', 'CLERK', 7698, to_date('03-12-1981', 'dd-mm-yyyy'), 950, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7902, 'FORD', 'ANALYST', 7566, to_date('03-12-1981', 'dd-mm-yyyy'), 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7934, 'MILLER', 'CLERK', 7782, to_date('23-01-1982', 'dd-mm-yyyy'), 1300, null, 10);
commit;
prompt 14 records loaded
prompt Enabling foreign key constraints for EMP...
alter table EMP enable constraint FK_DEPTNO;
prompt Enabling triggers for DEPT...
alter table DEPT enable all triggers;
prompt Enabling triggers for EMP...
alter table EMP enable all triggers;
set feedback on
set define on
prompt Done.

相关推荐

    关系型和非关系型数据库的区别? 关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据 可以保持数据的一致性 数据更

    关系型和非关系型数据库的区别? 关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据。 可以保持数据的一致性。 数据更新的开销比较小。 支持复杂查询(带 where 子句的查询) 非关系型数据库(NOSQL)...

    GIS与其他信息系统的区别.doc

    GIS对空间数据和属性数据共同管理、分析和应用,而一般的MIS侧重于非图形数据(属 性数据)的优化存储与查询,即使存储了图形,也是一文件的形式存储,不能对空间数 据进行查询、检索、分析,没有拓扑关系,其图形...

    25175学生成绩管理查询系统

    如果你既是班主任又是任课教师,则“学生管理”和“评语管理”都可以进,区别是前者针对班主任操作,后者针对6-1、“成绩管理-成绩管理”,作为班主任,你可以查看所在班级的所有学生所有成绩。如果仅是任课教师身份...

    SQL查询安全性及性能优化

    性能 - 批处理执行统计信息和性能相关的几个报表服务: 性能 - 对象执行统计信息 性能 - 按平均CPU时间排在前面的查询 性能 - 按平均IO次数排在前面的查询 性能 - 按总CPU时间排在前面的查询 性能 - 按IO总...

    2022年MySQL最新面试题,很全,已拿大厂 offer

    5、平时用到哪些关系型数据库和非关系数据库, 可以谈谈你对它们的理解吗? 6、可以简单说说你对MySQL的逻辑架构了解吗? 7、了解MySQL中的MVCC是什么? 8、PostgreSQL相对于MySQL的优势 9、PostgreSQL和MySQL的一些...

    25175学生成绩管理查询系统 v2.82.rar

    如果你既是班主任又是任课教师,则“学生管理”和“评语管理”都可以进,区别是前者针对班主任操作,后者针对6-1、“成绩管理-成绩管理”,作为班主任,你可以查看所在班级的所有学生所有成绩。如果仅是任课教师身份...

    数据库原理实验报告整合

    掌握非相关子查询、相关子查询的用法,理解它们的执行过程。 二、实验环境 Windows7操作系统,SQL Server软件。 三、实验课时 2课时。 四、实验内容 (一)、在已建立的STUDENT数据库和数据表的基础上,用Select...

    mysql面试题-关系模型

    1、关系型和非关系型数据库的区别? 关系型数据库的优点 容易理解,因为它采用了关系模型来组织数据。 可以保持数据的一致性。 数据更新的开销比较小。 支持复杂查询(带 where 子句的查询) 非关系型数据库(NOSQL...

    达梦数据库_SQL语言手册

    第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子查询 定量比较 带 谓词的子查询 多列表子查询 查询结果的合并 和 ...

    B树算法在数据库中的应用

    B树算法应用 B树算法主要应用于数据库索引综合效率很高 ...3B树查询效率和键在树中位置有关最大时间复杂度和B+树相同(在叶结点时候)最小时间复杂度为1(在根结点时 候)而B+树时候复杂度对某建成树是固定

    TCP/IP技术大全(中文PDF非扫描版)

    第三部分 IP和相关协议 第9章 IP协议家族 77 9.1 TCP/IP模型 77 9.1.1 解剖TCP/IP模型 78 9.1.2 协议组件 78 9.2 理解网际协议(IP) 79 9.2.1 IPv4结构 79 9.2.2 IP做什么 80 9.3 理解传输控制协议(TCP) 81 9.3.1 TCP...

    精心整理的数据库系统概论复习题.doc

    定义功能:SQL的定义功能包括模式定义、表定义、视图和索引的定义 2 定义嵌套查询、不相关子查询、相关子查询、行列子集视图、分组视图 将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为...

    Python语言程序设计习题答案.zip

    但又需要具备一定的计算思维能力,熟悉用程序进行数据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和解释,用程序表达算法。鉴于此,我们编写了本书...

    C#开发经验技巧宝典

    第19章 SQL查询相关技术 501 19.1 常用SQL查询技术 502 0837 如何在查询中正确使用单引号“’” 502 0838 SQL中SELECT语句的执行顺序 502 0839 在查询时查询数据为指定长度的数据 502 0840 如何利用WHERE...

    财物无忧4.1

    财物无忧和金蝶、用友等财务软件有什么区别? 金蝶、用友等财务软件属于专业人士用的专业财务核算软件。 1、财物无忧不是专业财务核算软件,侧重于财务过程管理和流程控制; 2、财物无忧使用人员除了专业财务人员,...

    视易神通夜总会5.0安装包

    56.增加包厢点单,包厢和大厅赠送落单前判断相关帐单是否已结帐. 57.增加打折记忆功能,打开结帐界面时可以直接显示上次退出时的打折信息(由后台新增加参数控制). 58.增加咨客系统预定换房功能. 59.增加咨客系统开...

    主要研究(设计)内容、研究(设计)

    学生是此系统的主要使用者,因为不管在哪个学校,学生的人数总是最多的,学生用户可以通过学生管理模块实现课程的选择、资费及相关信息的查询、个人信息修改等功能。 二、毕业设计(论文)的内容与要求: 1、...

Global site tag (gtag.js) - Google Analytics