--单行子查询
select * from emp where sal > (select sal from emp where empno = 7566);
--子查询空值/多值问题
1、如果子查询未返回任何行,则主查询也不会返回任何结果 --(空值)
select * from emp where sal > (select sal from emp where empno = 8888);
2、如果子查询返回单行结果,则为单行子查询,可以在主查询中对其使用相应的单行记录比较运算符 --(正常)
select * from emp where sal > (select sal from emp where empno = 7566);
3、如果子查询返回多行结果,则为多行子查询,此时不允许对其使用单行记录比较运算符 --(多值)--非法
select * from emp where sal > (select avg(sal) from emp group by deptno);
--多行子查询
select * from emp where sal > any(select avg(sal) from emp group by deptno); --any返回子查询中结果的最小值
select * from emp where sal > all(select avg(sal) from emp group by deptno); --all返回子查询中结果的最大值
select * from emp where job in (select job from emp where ename = 'MARTIN' or ename = 'SMITH'); --in先判断子查询即里面的结果,再作为条件进行外面的判断
--对于 in 和 exists
--EXISTS的执行流程
--select * from t1 where exists ( select null from t2 where y = x )
--可以理解为:
--for x in ( select * from t1 )
--loop
--if ( exists ( select null from t2 where y = x.x )
--then
--OUTPUT THE RECORD
--end if
--end loop
select * from emp e where exists (select * from emp m where ename in( 'MARTIN', 'SMITH') and e.job=m.job); --exists是先判断外面的查询,然后查询里面的结果,再通过连接条件将两个结果连接起来进行判断
区别:
1、如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用 in,反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用 exists。
2、如果是 exists,--那么以外层表为驱动表,先被访问,如果是 IN,那么先执行子查询,所以我们会以驱动表的快速返回为目标,那么就会考虑到索引及结果集的关系了
3、IN 是不对NULL进行处理
eg: select 1 from dual where null in (0,1,2,null) 结果为空
--查询某用户下所有表
select table_name from all_tables where owner='SCOTT';
select * from all_tables where owner='SCOTT';
--查询 EMP 表中所有字段(列)
select * from all_tab_columns where table_name='EMP';
--列出表的索引列
select * from sys.all_ind_columns where table_name='EMP';
select * from sys.all_ind_columns where upper(table_name)='CAREUSERHAM';
--列出表中约束
select * from all_constraints where table_name='EMP'
--在 oracle中描述数据字典视图
select table_name ,comments from dictionary where table_name like '%TABLE%';
分享到:
相关推荐
Oracle 基础查询关联查询练习题 Oracle 基础查询关联查询练习题中涉及到多种查询类型,包括基础查询、关联查询、分组查询等。下面我们将对每个练习题的知识点进行详细解释。 1. 基础查询 基础查询是指从数据库中...
本文档主要包含oracle的基础查询语句及其含义,适合于人们人员查看
oracle基础教程 课程说明 1 课程介绍 1 课程目标 1 相关资料 1 第1章 ORACLE数据库概述 2 1.1 产品概述 2 1.1.1 产品简介 2 1.1.2 基本概念 3 1.2 ORACLE系统结构 4 1.2.2 ORACLE物理结构 4 1.2.3 系统全局区 6 ...
Oracle 基础教程 Oracle 是一款流行的关系型数据库管理系统,由 Oracle 公司开发和维护。作为一个功能强大且广泛应用的数据库管理系统,Oracle 具有强大的数据存储和管理能力,广泛应用于各种 Industries,包括金融...
以下将基于这些信息,详细阐述Oracle数据库的基础知识。 ### Oracle Database 11g 概述 #### 一、Oracle Database 简介 Oracle Database 是一款由美国Oracle公司开发的关系型数据库管理系统(RDBMS)。它提供了...
对于初学者来说,掌握Oracle基础知识是进入数据库领域的第一步。本文将深入浅出地介绍Oracle数据库的一些核心概念和基本操作,帮助你快速入门。 一、Oracle数据库系统概述 Oracle数据库是由美国Oracle公司开发的,...
以下是一些Oracle基础知识的详细解释: 1. SQL*Plus工具:这是Oracle数据库管理员(DBA)和开发人员常用的命令行界面,用于执行SQL查询和其他数据库操作。`set linesize` 和 `set pagesize` 用于调整输出的行宽和每...
一、Oracle基础SQL语句 SQL(Structured Query Language)是用于管理和操作数据库的语言。在Oracle中,主要的SQL语句包括: 1. SELECT语句:用于从数据库中检索数据,是最常用的SQL命令。你可以通过指定列名、表名...
通过本Oracle基础教程PPT,你将逐步了解并掌握这些概念,为你的Oracle学习之路打下坚实基础。随着对Oracle的理解加深,你还可以进一步探索高级主题,如数据仓库、分布式数据库、RAC集群等。学习Oracle不仅是技术的...
Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...
首先,Oracle查询优化的基础是SQL(结构化查询语言)。优化查询通常从编写高效的SQL语句开始,包括选择合适的索引、避免全表扫描、减少子查询以及合理使用JOIN操作。在Oracle中,理解执行计划至关重要,因为它是...
本教程基于Oracle 11g版本,旨在为初学者提供全面的数据库管理、应用与开发基础知识。通过以下章节的讲解,我们可以深入理解Oracle数据库的核心概念和技术。 首先,"第1章 Oracle 11g简介"介绍了Oracle 11g的主要...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
"Oracle基础学习pdf"提供了一系列教程,旨在帮助新手入门并让有经验的开发者进行查阅。下面将根据提供的文件列表,深入讲解每个章节涵盖的关键知识点。 1. **第0章 开篇** - Oracle概述:介绍Oracle数据库的基本...
oracle基础创建表,删除表,修改表,查看表的结构和数据,添加数据语法:删除数据语法,更新数据语法:基础查询语法:
了解如何编写有效的SELECT语句来查询数据,INSERT、UPDATE和DELETE语句来操作数据,以及CREATE和DROP命令来管理数据库结构,这些都是Oracle基础的重要组成部分。 其次,数据库的体系结构是另一个关键知识点。Oracle...
本资料“oracle基础知识回顾与练习.zip”是针对Oracle数据库的基础知识进行整理,采用纯SQL语句的形式,适合初学者及需要巩固基础的用户进行学习和实践。 1. SQL基础 SQL(Structured Query Language)是用于管理...
《Oracle查询优化改写技巧与案例》不讲具体语法,只是以案例的形式介绍各种查询语句的用法。第1~4章是基础部分,讲述了常用的各种基础语句,以及常见的错误和正确语句的写法。这部分的内容应熟练掌握,因为日常查询...
以下将详细讲解Oracle基础知识,包括数据库管理、表的创建与维护、SQL查询技巧、权限管理以及PL/SQL编程等方面。 1. **Oracle数据库优势** Oracle数据库因其高性能、高可用性和安全性而受到青睐。它支持大规模并发...
这篇“Oracle基础培训文档”旨在为初学者提供一个全面了解Oracle数据库的平台,帮助大家掌握其基本概念、操作和管理技巧。 首先,我们从基础开始,Oracle数据库的核心是SQL(结构化查询语言),它是用于管理和处理...