`
youanyyou
  • 浏览: 196500 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

oracle高级查询实例,提升效率

阅读更多

使用Oracle特有的查询语法, 可以达到事半功倍的效果。

如下:

1.
树查询

create table tree (
    id number(
10not null primary key,
    name varchar2(
100not null,
    super number(
10not null                // 0 is root
);
-- 从子到父
select * from tree start with id = ? connect by id = prior super 
-- 从父到子
select * from tree start with id = ? connect by prior id = suepr
-- 整棵树
select * from tree start with super = 0 connect by prior id = suepr


2.
分页查询

select * from ( 
    
select my_table.*, rownum  my_rownum from ( 
        
select name, birthday from employee order by birthday
    ) my_table 
where rownum < 120 
where my_rownum >= 100;


3. 
累加查询, scott.emp为例

select empno, ename, sal, sum(sal) over(order by empno) result from emp;
 
     EMPNO ENAME             SAL     RESULT
---------- ---------- ---------- ----------
      7369 SMITH             800        800
      
7499 ALLEN            1600       2400
      
7521 WARD             1250       3650
      
7566 JONES            2975       6625
      
7654 MARTIN           1250       7875
      
7698 BLAKE            2850      10725
      
7782 CLARK            2450      13175
      
7788 SCOTT            3000      16175
      
7839 KING             5000      21175
      
7844 TURNER           1500      22675
      
7876 ADAMS            1100      23775
      
7900 JAMES             950      24725
      
7902 FORD             3000      27725
      
7934 MILLER           1300      29025


4.
高级group by

select decode(grouping(deptno),1,'all deptno',deptno) deptno,
       decode(
grouping(job),1,'all job',job) job,
       
sum(sal) sal
from emp 
group by ROLLUP(deptno,job);
DEPTNO                                   JOB              SAL
---------------------------------------- --------- ----------
10                                       CLERK           1300
10                                       MANAGER         2450
10                                       PRESIDENT       5000
10                                       all job         8750
20                                       CLERK           1900
20                                       ANALYST         6000
20                                       MANAGER         2975
20                                       all job        10875
30                                       CLERK            950
30                                       MANAGER         2850
30                                       SALESMAN        5600
30                                       all job         9400
all deptno                               all job        29025


5. use hint
当多表连接很慢时,ORDERED提示试试,也许会快很多

SELECT /**//*+ ORDERED */* 
  
FROM a, b, c, d 
 
WHERE   



深圳人才网 深圳招聘网 深圳人才招聘网 深圳人才大市场 

企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位! 

www.szrcwz.com                                                                                                                                           

                  Google 提供的广告

1
0
分享到:
评论
1 楼 forestking 2010-09-30  
能详细说说
累加查询, 以scott.emp为例

select empno, ename, sal, sum(sal) over(order by empno) result from emp;
这个么?
不用group by 也可以调用sum()?
谢谢

相关推荐

    oracle数据库实例视频教程01

    Oracle数据库是一种广泛应用于企业级数据管理的高性能关系型数据库系统,尤其在大型企业和金融...后续的教程将更深入地探讨Oracle的高级特性,如存储过程、触发器、数据库链接和并行处理等,进一步提升你的专业技能。

    Oracle SQL优化实例讲解.pdf

    通过上述知识点的详细说明,我们可以了解到Oracle SQL优化涉及多个层面的内容,从具体的优化技巧到理论概念,从基本的操作到高级的性能分析工具,每一个环节都是优化过程中不可或缺的一环。通过实例讲解,能够更加...

    Oracle高级SQL培训与讲解

    "Oracle高级SQL培训与讲解"的主题旨在深入探讨SQL在Oracle环境中的高级用法,帮助用户提升数据库操作和管理的效率。 1. **子查询与连接查询** - 子查询:在SQL中,子查询是一种嵌套查询,可以在SELECT、FROM或...

    jsp+oracle数据库开发与实例

    通过学习《jsp+oracle数据库开发与实例》及其配套资源,开发者可以提升在Web应用开发中的数据库操作能力,了解如何在JSP中有效地使用Oracle数据库,从而构建更强大、更灵活的应用程序。无论你是初学者还是有经验的...

    Oracle SQL高级编程 中文版

    通过阅读《Oracle SQL高级编程》,读者不仅可以掌握Oracle SQL的高级特性,还能学习到如何在实际项目中应用这些知识,从而提升数据库管理与开发的效率和质量。对于DBA来说,这本书也是日常维护和优化数据库的宝贵...

    Oracle数据库系统应用实例集锦与编程

    总结来说,"Oracle数据库系统应用实例集锦与编程"涵盖了从基础的SQL操作到高级的PL/SQL编程、数据库设计、性能优化、事务管理和备份恢复等多个方面。通过学习这些实例和技巧,无论是数据库管理员还是开发人员,都能...

    oracle-PLSQL实例精析

    Oracle PL/SQL是一种强大的编程语言,它将关系数据库的强大功能与高级编程语言的灵活性结合在一起。在"Oracle PL/SQL实例精析"这本书中,读者可以深入理解如何利用这种语言来构建高效、可维护的数据库应用程序。这...

    Oracle数据库SQL培训 数据库SQL语句编写培训教程 Oracle高级查询SQL优化 结合实际案例讲 视频+PPT.rar

    总之,这个Oracle数据库SQL培训教程旨在提升用户在高级查询和SQL优化方面的技能,通过理论讲解与实际案例的结合,使学习者能够在日常工作中更有效地处理和分析数据,提升工作效率。无论是数据库管理员、开发人员还是...

    详细介绍oracle proc编程实例

    Oracle Proc,全称为Oracle Pre-Compiler,是一种将PL/SQL代码嵌入到C或FORTRAN等高级语言中的工具。Proc编程允许开发人员在C或FORTRAN程序中直接编写和执行Oracle数据库的PL/SQL代码,提高了应用程序的性能和效率。...

    oraclesql高级编程 随书脚本

    这些脚本涵盖了从基础查询到复杂的数据操作、存储过程、函数以及触发器等多个方面,旨在帮助读者提升在Oracle环境下的编程能力。 1. **PL/SQL基础** PL/SQL(Procedural Language/SQL)是Oracle数据库特有的编程...

    Oracle+SQL高级编程

    SQL,即结构化查询语言,是与关系型数据库交互的基础工具,其高级编程技巧对于提升数据处理效率和数据库性能至关重要。 1. **Oracle数据库架构**:Oracle数据库由多个组件构成,包括实例(内存结构和后台进程)和...

    Oracle专家高级编程.pdf 高清下载

    尽管给定的部分内容主要涉及的是一个重复的链接到一个Java学习社区,并没有提供关于"Oracle专家高级编程"的具体信息,但基于标题和描述,我们可以合理推测文档内容将围绕Oracle数据库的高级编程技巧展开。...

    oracle数据库技术的实例开发

    总的来说,Oracle数据库技术的实例开发涵盖了从基本的文件存储到高级的对象和XML数据处理,为开发者提供了丰富的工具和策略来满足各种数据管理挑战。通过深入学习和实践这些技术,我们可以提升数据库系统的效能,...

    Oracle高级Sql编程

    Oracle高级SQL编程是数据库管理员(DBA)和开发人员提升其在Oracle环境中查询和操作数据技能的关键领域。本文将深入探讨Oracle SQL的一些高级特性和最佳实践,帮助你优化查询性能,避免常见误区,并提高工作效率。 ...

    Oracle数据库系统应用实例集锦与编程技巧(PDG)

    本资源“Oracle数据库系统应用实例集锦与编程技巧(PDG)”旨在帮助用户深入理解Oracle数据库的实用技巧和高级编程方法。以下将对这个资料包中的关键知识点进行详细阐述。 1. **Oracle数据库基础**:Oracle数据库的...

    Oracle 11g

    本篇将围绕Oracle 11g的关键特性,结合课程实例代码进行深入探讨。 1. **数据存储与管理**:Oracle 11g引入了自动存储管理(Automatic Storage Management, ASM),简化了数据库存储的配置和管理。ASM可以自动平衡...

    oracle实例

    9. **索引与查询优化**:探讨如何创建和使用索引来提升查询效率,以及如何编写高效的SQL语句。 通过阅读《Oracle数据库实例教程》这本书籍,你可以逐步深入Oracle实例的世界,从基础到高级,从理论到实践,逐步掌握...

    Oracle数据库系统应用实例集锦与编程技巧

    总结来说,"Oracle数据库系统应用实例集锦与编程技巧"这份资料涵盖了Oracle数据库的多个关键领域,从基础概念到高级技巧,对于希望深入学习Oracle数据库的用户极具价值。尽管扫描版可能存在清晰度问题,但通过仔细...

    湖南电信ORACLE高级培训讲义

    总的来说,这份"湖南电信ORACLE高级培训讲义"是一份全面的教育资源,涵盖了从SQL基础到高级PL/SQL编程和数据库优化的广泛内容,特别适合希望在电信行业中提升Oracle技能的专业人士。通过深入学习和实践,你可以提高...

Global site tag (gtag.js) - Google Analytics