`
pl821229
  • 浏览: 18479 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle技术点滴--sql篇1

阅读更多
介绍下个人觉得可能比较少用但用处颇大的sql:
1.over()分析函数
  求按deptno分组统计出sum(sal)的同时,还要看到其它字段信息,如何实现?
  select sum(t.sal) from emp t group by t.deptno;
  是肯定不行的,可改成如下sql:
  select t.*,sum(t.sal) over(partition by t.deptno) sum  from emp t;
  查询结果如下:(部分)

     EMPNO ENAME      JOB
---------- ---------- ---------
      7782 CLARK      MANAGER
      7839 KING       PRESIDENT
      7934 MILLER     CLERK
      7566 JONES      MANAGER
      7902 FORD       ANALYST
      7876 ADAMS      CLERK
      7369 SMITH      CLERK
      7788 SCOTT      ANALYST
      7521 WARD       SALESMAN
      7844 TURNER     SALESMAN
      7499 ALLEN      SALESMAN
      7900 JAMES      CLERK
      7698 BLAKE      MANAGER
      7654 MARTIN     SALESMAN

已选择14行。
   select t.*,sum(t.sal) over(partition by t.deptno) sum  from emp t;语句也支持排序,
   亦可换成
    select t.*,sum(t.sal) over(partition by t.deptno order by t.empno) sum  from scott.emp t;

2.row_number() over()
  求按deptno分组,empno排序列出所有员工顺序。
  select t.*,row_number() over(partition by t.deptno order by empno) sum  from emp t;
  此函数还有其它几种类似使用

3.9i版本增加merge into语法。
  合并两张表数据。emp1与emp表结构完全一致或部分一致,需要将emp中数据更新或插入至emp1中,下面sql原意为:将emp1与emp表在empno字段上关联,如果匹配则依赖emp的数据更新至emp1中,不匹配则将emp数据插入emp1中。
merge into emp1 e1
using emp e
on (e1.empno = e.empno)
when matched then
update set e1.job = e.job,e1.ename = e.ename
when not matched then
insert values(e.empno,e.ename,e.job,e.mgr,e.hiredate,e.sal,e.comm,e.deptno);


从10g版本亦可如下单独部分使用:
merge into emp1 e1
using emp e
on (e1.empno = e.empno)
when matched then
update set e1.job = e.job,e1.ename = e.ename

using emp e
on (e1.empno = e.empno)
when not matched then
insert values(e.empno,e.ename,e.job,e.mgr,e.hiredate,e.sal,e.comm,e.deptno);


merge into emp1 e1
using emp e
on (e1.empno = e.empno)
when matched then
update set e1.job = e.job,e1.ename = e.ename delete where e.empno = 111when not matched then
insert values(e.empno,e.ename,e.job,e.mgr,e.hiredate,e.sal,e.comm,e.deptno);

4.insert sqll
  顾名思义,多表插入。比较简单,不做太多描述。
  只报示例过程贴出。
  创建两张示例表
  create table emp1 as select * from emp where 1 = 2;
  create table emp2 as select * from emp where 1 = 2;
  执行
insert all
when sal > 1500 then
into emp1(empno,ename,sal) values(empno,ename,sal)
when sal < 2500 then
into emp2(empno,ename,sal) values(empno,ename,sal)
select empno ,ename ,sal from scott.emp; 

5.nulls first或null last
  oracle中null值为最大,
  select *  from emp t order by comm与
  select *  from emp t order by comm nulls first;
  查询结果一样,都将comm列为null排最前。可改成
  select *  from emp t order by comm nulls last
  comm列为null的记录将排至最后

0
0
分享到:
评论

相关推荐

    Oracle点滴积累

    expimp导出导入工具的使用.doc,Oracle 单记录函数.doc,Oracle 的内存管理.ppt,Oracle9I计划管理表空间.pdf,Oracle备份与恢复.doc,Oracle返回树关系列表Sql.doc,Oracle里时间的应用.doc,Oracle体系结构概述....

    Oracle运维最佳实践-下.pdf 带书签

    - 本书详细介绍了Oracle官方技术支持团队在分析性能问题时所采用的方法和技术。 - 包括使用ADDM(自动数据库诊断监视器)、AWR报告等工具来进行深入分析。 - 实例: - 使用`DBMS_ADVISOR`包来生成性能建议报告。...

    Oracle DBA手记3-数据库性能优化与内部原理解析 中文版

    “sql 与sql 优化”,分别讲解了sql 的执行计划,sql profile 的使用,以及oracle 中的null 值解析;“内部原理与优化”,分别介绍了oracle 的索引分裂、tx 锁等待、闩锁原理、逻辑读写、隐含参数与latch 原理等的...

    下载此文件-Oracle初学者的学习点滴及国内oracl.docx

    很抱歉,我无法根据您提供的文件内容来生成与"Oracle初学者的学习点滴及国内oracl.docx"相关的IT知识。文件的内容主要涉及国际贸易教程的习题和理论,如李嘉图的比较优势理论、里昂惕夫悖论,以及21世纪国际贸易的新...

    oracle知识點滴

    "Oracle知识点滴"显然是一份汇聚了关于Oracle数据库关键概念和技术的资料,适合Oracle用户进行学习和参考。以下是根据标题、描述以及文件名所推测的一些关键知识点: 1. **Oracle数据库架构**:Oracle数据库采用...

    ORACLE PROC_*C编程点滴.pdf

    《ORACLE PROC_*C编程点滴》这篇文档主要探讨了在Oracle数据库环境下使用PROC_*C进行编程的一些关键点,特别是在预编译时指定数据库用户和处理游标操作的细节。以下是这些知识点的详细说明: 1. **预编译时指定...

    DB点滴

    标题“DB点滴”暗示了这篇内容可能涉及数据库方面的知识,特别是Oracle数据库的使用。描述中的博文链接虽然没有提供具体信息,但通常博客会分享作者在IT领域的独特见解或实践经验,尤其是与源码和工具相关的技术点。...

    程序员最好的SQL编辑助手

    此外,SqlEditPlus支持多数据库连接,包括但不限于MySQL、Oracle、SQL Server、PostgreSQL等主流数据库系统,这意味着无论你使用哪种数据库,都可以在统一的环境中进行操作。它还提供了数据库对象浏览功能,允许用户...

    最新_互联网公司招聘_笔试_开发_2022华为面试心得点滴总结大全.pdf

    - 面试者还需展示对数据库(如Oracle的PL/SQL编程)的理解,包括过程、函数和触发器的编写。 - 面试者被要求现场编写一个strcpy函数,这是对基本编程能力的测试。 4. **综合面试** - 综合面试包括个人简介和小组...

    婚恋网会员管理系统说明书

    - **数据库管理**:选用SQL Server/Oracle/MySQL等关系型数据库存储数据。 ##### 2. 功能模块划分 - **登录子系统**:区分普通用户、会员和管理员三种角色,提供不同的访问权限。 - **查询子系统**:支持按性别、...

    最新2020程序员实习日记范文6篇.docx

    这篇文档包含了六篇程序员实习日记,记录了一位实习生在2020年期间学习和工作的点滴,主要涉及Java编程、开源框架、数据库管理和Web应用开发等主题。以下是这些日记中提炼出的重要知识点: 1. **Java编程框架**:...

    LoadRunner使用技巧及相关知识点滴

    2. **协议支持**:LoadRunner支持多种协议,包括Web(HTTP/HTML)、WebServices(SOAP/REST)、FTP、数据库(Oracle、SQL Server等)、Citrix、RDP等,几乎涵盖了所有常见的应用类型。 3. **脚本录制与回放**:通过...

    ASP.NET源码——[博客空间]Q-Space 晴网个人空间系统 v2.0.zip

    同时,可能会使用ADO.NET来连接和查询数据库,这是.NET Framework中的数据访问层技术,能够与各种数据库管理系统(如SQL Server、Oracle等)进行交互。 另外,Q-Space系统可能会采用ASP.NET的 Membership 和 Role ...

    jsp 学生成绩系统

    通常会使用Java Database Connectivity (JDBC) API来连接到如MySQL、Oracle或SQL Server等关系型数据库管理系统。 3. JSP语法:系统中会包含JSP页面,这些页面通过使用指令、脚本元素和表达式语言来处理请求、响应...

    【推荐】数据仓库理论学习与实践资料合集(104份).zip

    SQL_SERVER构建数据仓库(1份) 了解数据仓库及其应用 数据仓库建模技术 数据仓库介绍课件 数据仓库设计 数据仓库与OLAP 数据集市建设、数据质量及数据管理方法 OLAP及数据仓库讲解 EDW_(DM数据仓库数据建模)模型...

    啊D工具箱(官方网版)

    1. **数据库连接**:支持多种数据库系统,如MySQL、Oracle、SQL Server、PostgreSQL等,通过直观的界面让用户轻松建立和管理数据库连接。 2. **SQL查询编辑器**:提供一个智能的代码编辑器,具有自动完成、语法高亮...

    jsp网络日记本源码

    这个项目展示了如何利用JSP和相关Web开发技术来构建一个用户友好的交互式平台,使得用户可以在任何有网络连接的地方记录自己的生活点滴。 在JSP技术中,页面主要由HTML、CSS和Java代码组成,其中Java代码负责处理...

    基于java的个人日记本系统设计与实现(源代码+数据库+辅导视频).zip

    这个基于Java的个人日记本系统正是顺应这一趋势的产物,它提供了用户友好的界面,方便用户记录生活点滴,同时也展示了Java技术在实际项目中的应用。 首先,我们要理解Java作为编程语言的强大之处。Java是一种面向...

    Java 日记本系统

    Java Web日记本系统是一个基于Java技术栈开发的在线应用程序,旨在提供一个方便、安全的平台,让用户可以记录、管理和分享他们的日常生活点滴。在这个系统中,用户可以创建、编辑、删除日记条目,并可能包含一些额外...

    DB_Learning:记录学习数据库的点滴

    数据库是一个有组织的数据集合,它可以是结构化的,如关系型数据库(RDBMS),如MySQL、Oracle和SQL Server,或者是非结构化的,如NoSQL数据库(MongoDB、Cassandra等)。关系型数据库基于表格模型,通过表与表之间...

Global site tag (gtag.js) - Google Analytics