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

oracle表的复杂查询

 
阅读更多

命名列的别名可以带as,也可以不带as,命名表的别名不能 带as

 

数据库的引擎在解析sql语句的时候是按照从左到右的顺序进行解析的,所以对于精确匹配条件应该写在左边

 

*当某个查询语句中有多个查询条件,且其中的一个查询条件中出现了选择类型的语句时,此时该条件要用括号括起来,否则会出错的

eg:查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名的首写字母为大写的J

正确写法如下:

select ename from emp where (sal>500 or job='MANAGER') and ename like 'J%'; //如果去掉括号将会出错

 

自连接

是指在同一张表的连接查询

eg:查询'FORD'的上级

select boss.empno,boss.ename from emp worker,emp boss where worker.mgr=boss.empno and worker.ename='FORD';

或者

select * from emp where empno=(select mgr from emp where ename='FORD')

 

什么是子查询?

          子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询

 

单行子查询?

          单行子查询是指子查询只返回单列,单行数据  ,             一般使用>,<,=,<>进行连接判断

          

 

多行子查询?

         多行子查询是指返回单列多行数据,都是针对单列而言的   一般使用in,>all(比所有的多大),>any(比任意一个都大,即比最小的大)

         eg;查询和部门10工作相同的雇员的名字,工作,薪水,部门号

         select ename,job,sal,deptno from emp where job in(select job from emp where  deptno=10);

 

 

多列子查询?

        而多列子查询则是指查询返回多个列数据的子查询语句       一般使用inner连接查询

         eg:查询与smith的部门和岗位完全相同的所有雇员

        select ename from emp e1 where (e1.job,e1.deptno)=(select job,deptno from emp where ename='SMITH');          //将查询结构作为子表进行二次匹配

         或者

         select ename from emp e1 inner join (select job,deptno from emp where ename='SMITH') e2 on (e1.job=e2.job and e1.deptno=e2.deptno);

         eg:查询高于自己部门平均工资的员工信息

         select ename ,sal,e1.deptno,e2.avgsal from emp e1,(select avg(sal) as avgsal,deptno from emp group by deptno) e2 where (e1.deptno=e2.deptno and e1.sal>e2.avgsal); //将查询结构作为子表进行二次匹配

 

 

*在from字句中使用子查询

这里需要说明的是当在from字句中使用子查询时,该子查询会被当作为一个内嵌视图来对待,因此叫做内嵌视图,当在from字句中使用子查询时必须给子查询制定别名。

 

 

 

 

 

分享到:
评论

相关推荐

    oracle查询表碎片

    ### Oracle查询表碎片知识点详解 在Oracle数据库管理与优化的过程中,了解并处理表碎片是非常重要的一个环节。本文将详细介绍如何通过SQL查询来检测Oracle表的碎片情况,并对给出的SQL查询语句进行深入解析。 ####...

    oracle 复杂查询语句的使用

    总的来说,Oracle的复杂查询功能强大,灵活多样,熟练运用这些技巧可以极大地提高数据查询的效率和准确性,同时降低数据库的维护成本。通过不断地学习和实践,开发者可以更好地理解和应用这些技术,以满足各种复杂的...

    oracle数据库复杂查询处理

    oracle数据库复杂查询处理,其中提供了详细的解决思路,由简入繁,对我们开发人员由其重要

    ORACLE 多表查询与数据修改

    - **熟悉三个或四个表的连接查询**:在实际应用中,我们往往需要从多个表中获取数据以完成复杂的业务逻辑。通过本节的学习,您将能够掌握如何利用Oracle数据库进行多表连接查询,以实现对三个或四个表的有效联合查询...

    oracle复杂相关子查询

    复杂相关子查询 动画版

    oracle开发复杂查询

    Oracle数据库是世界上最流行的数据库管理系统之一,尤其在处理复杂查询方面表现出强大的功能。本文将深入探讨Oracle9i中常用的复杂查询技术,帮助你提升SQL语言的运用水平。 首先,我们来了解查询的基本结构,它由...

    oracle数据库复杂sql语句

    以上示例分别展示了子查询的基本用法、左外连接的实现方式以及字符串连接的应用,这些技术都是构建复杂查询的基础。掌握这些技术不仅能提高开发效率,还能提升数据处理能力,对于从事Oracle数据库相关工作的人员来说...

    Oracle复杂查询实验报告

    Oracle复杂查询实验报告, 用SQL语句实现下列查询。要求:能用嵌套查询的尽量使用嵌套查询。

    oracle4的表查询和基本函数.docx

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的功能来处理复杂的查询和数据操作。本文将深入探讨Oracle4中的表查询和基本函数。 首先,我们关注的是基本查询。在Oracle中,查询多表通常涉及到...

    Oracle查询指定表的所有字段名和数据类型SQL

    3. **SQL脚本编写**:在编写复杂的SQL查询或存储过程时,了解目标表的字段类型和约束条件是非常重要的,这有助于避免因类型不匹配或违反约束条件而导致的问题。 总之,通过上述SQL查询语句,我们可以高效地获取...

    oracle查询表的所有列并用逗号隔开

    ### Oracle查询表的所有列并用逗号隔开 #### 核心概念解析 1. **表的元数据**:在Oracle中,可以通过查询特定的数据字典视图来获取表的元数据信息。对于用户所拥有的表,可以使用`USER_TAB_COLUMNS`视图。该视图...

    提高ORACLE数据库的查询统计速度

    - **减少子查询使用**:尽可能将多个子查询合并成一个复杂查询,或者改用其他更高效的方法实现相同功能。 ##### 4. 索引管理 - **建立合适类型的索引**:根据查询需求选择合适的索引类型(如B树索引、位图索引等)...

    Oracle查询用户表工具

    4. **SQL语句测试**:用户可以直接在工具内编写和测试SQL语句,验证查询的正确性,这尤其适用于复杂查询和数据验证。 5. **用户友好界面**:提供直观的图形用户界面,使得操作简便,即使是数据库新手也能轻松上手。...

    oracle数据库表简单查询修改小工具

    "Oracle数据库表简单查询修改小工具"就是为了简化这些操作而设计的辅助软件,旨在提供一个用户友好的界面,使得非专业DBA也能方便地对数据库进行操作。 该工具的核心功能主要包括以下几个方面: 1. **查询功能**:...

    【oracle】oracle查询优化改写

    此外,子查询优化可能包括子查询消除、子查询合并或子查询物化,以减少查询的复杂性和提高执行速度。 优化器是Oracle处理SQL查询的核心组件,它负责选择执行查询的最佳执行计划。Oracle有多种优化器,如RBO(Rule-...

    oracle-----oracle多表查询

    2. 使用WITH语句(公共表表达式,CTE):定义临时的结果集,简化复杂查询。 3. 分组和聚合函数:GROUP BY和COUNT(), SUM(), AVG(), MAX(), MIN()等,用于对数据进行统计分析。 4. 聚合函数与GROUP BY结合的子查询:...

    Oracle表分区详解(优缺点)

    Oracle 表分区是一种高效的数据管理策略,用于处理大数据量的表,以提升查询性能和数据库的可维护性。本文将详细介绍Oracle表分区的概念、作用、优缺点,以及各种类型的分区和操作方法。 首先,理解表空间和分区表...

    通过MSQL通过视图访问ORACLE中的表

    视图是基于一个或多个表的查询结果,可以简化复杂的查询逻辑,并提供一个抽象的接口。 示例: ``` CREATE VIEW my_view AS SELECT * FROM oracle_table WHERE &lt;条件&gt;; ``` 4. **查询和操作视图**:现在,你...

    oracle拼音首字母查询

    Oracle拼音首字母查询是一...总的来说,Oracle拼音首字母查询是一个结合了字符编码、数据库索引和字符串处理技术的复杂过程。正确地实施可以极大地提升中文数据的检索效率,但也需要根据具体需求和资源来权衡解决方案。

    oracle 常用SQL查询

    以下是一些常用的Oracle SQL查询,这些查询涵盖了从基础的表空间信息到复杂的数据库对象状态和性能监控。 1. **查看表空间的名称及大小**: 这个查询通过`dba_tablespaces`和`dba_data_files`视图获取每个表空间的...

Global site tag (gtag.js) - Google Analytics