Oracle子查询(单行、多行、关联子查询)、集合运算

摘要:
所有子查询首先执行子查询,然后执行主查询。2.在from之后,使用子查询将子查询的结果视为新表。3.当子查询和多表查询都可以解决同一问题时,SQL优化应该尝试使用多表查询,因为子查询方法需要访问数据库两次。5.rownum查询所有员工信息:添加rownum属性后,查询员工信息:第二行select语句查询的数据是临时表。6.关联子查询关联子查询是指外部查询返回的每一行数据。

1、单行子查询

查询工资比名字为ADAMS高的员工的名字和工资:

Oracle子查询(单行、多行、关联子查询)、集合运算第1张

 除了关联子查询以外,子查询都是先执行子查询再执行主查询。

Oracle子查询(单行、多行、关联子查询)、集合运算第2张

2、在from后面使用子查询

Oracle子查询(单行、多行、关联子查询)、集合运算第3张

 把子查询的查询的结果当作一个新的表。

3、sql优化

在子查询和多表查询都可以解决同一个问题的时候,尽量使用多表查询,因为子查询的方式需要访问数据库两次,查询效率更低。

4、多行子查询

(1)关键字in:

Oracle子查询(单行、多行、关联子查询)、集合运算第4张

(2)any(集合中的任意一个值)

Oracle子查询(单行、多行、关联子查询)、集合运算第5张

 这里的大于any,即大于最小值。

(3)all(集合中的所有元素)

Oracle子查询(单行、多行、关联子查询)、集合运算第6张

这里大于all,即大于最大值。

5、rownum

查询全部的员工信息:

Oracle子查询(单行、多行、关联子查询)、集合运算第7张

 加上rownum属性后进行员工信息的查询:

Oracle子查询(单行、多行、关联子查询)、集合运算第8张

 可以看出rownum属性是根据查询结果的先后顺序进行添加的。

Oracle子查询(单行、多行、关联子查询)、集合运算第9张

 当按员工薪水进行员工信息的排序时,rownum属性依旧不变。

Oracle子查询(单行、多行、关联子查询)、集合运算第10张

 查询薪水最高的三个人的信息,第二行的select语句查询的数据是临时表。

6、关联子查询

Oracle子查询(单行、多行、关联子查询)、集合运算第11张

关联子查询中,外部查询返回的每一行数据,内部查询都要执行一次。上面的例子中,先取出emp表中的第一行数据,在内查询中查询该工作的平均工资,然后利用外查询,查询高于平均工资的员工信息。

7、UNION

(1)分别查询10号部门和20号部门的员工信息:

Oracle子查询(单行、多行、关联子查询)、集合运算第12张

 (2)使用集合运算的方式一次查询10号和20号部门的员工信息:

Oracle子查询(单行、多行、关联子查询)、集合运算第13张

 (3)尽量不要使用UNION,因为查询效率会随着UNION使用的次数的增多(访问数据库的次数也会增多)而降低。

8、交集:INTERSECT

9、差集:MINUS

免责声明:文章转载自《Oracle子查询(单行、多行、关联子查询)、集合运算》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IOS 多线程的一些总结Navicat破解版下载安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

NoSQL代表: Mongo DB(芒果数据库)

转载(NoSQL代表: Mongo DB(芒果数据库) ) 一、MongoDB简介         MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。(humongous:堆积如山)2011年将被记住,...

Pycharm2018中DataBase的使用

1、点击右侧边栏的DataBase,在出现的Database窗口下点击绿色小加号,选择Data Source,选择需要的数据库类型,此处选择Sqlite 2、配置数据库连接信息 3、选择schema,可以看到数据表信息 4、打开sql面板,输入查询SQL执行...

『软件介绍』SQLServer2008 基本操作

0x 01 连接数据库     Win7下,先打开SQLServer管理工具(开始菜单/所有程序/Microsoft SQL Server 2008/SQL Server Management Studio)     会弹出“连接到服务器对话框” 1 服务器类型 : 数据库引擎 2 服务器名称 : 127.0.0.1 3 身份验证 : Windows身...

sharding-jdbc

https://www.cnblogs.com/fengpinglangjingruma/p/14005759.html sharding-jdbc 提供了4种分片算法: 1、精确分片算法 精确分片算法(PreciseShardingAlgorithm)用于单个字段作为分片键,SQL中有 = 与 IN 等条件的分片,需要在标准分片策略(StandardSh...

数据库创建,用户管理,导入dmp文件

创建数据库文件 CREATE TABLESPACE toolset LOGGING DATAFILE '/home/oracle/app/oracle/oradata/orcl/toolset.dbf' SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL; 创建数据库临...

ms sql server 2005数据库日志文件过大,需要清除或者清空

数据库:ms sql server 2005 任务:ms sql server 2005数据库日志文件过大,需要清除。 方法: backup log [你的数据库名称] WITH NO_LOGbackup log [你的数据库名称] WITH TRUNCATE_ONLYDBCC SHRINKDATABASE([你的数据库名称]) 说明: backup lo...