为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle高级查询

  • 常用分组函数

    avg

    sum

    min

    max

    count

    wm_concat:行转列

    查看全部
  • 分组函数概念及其使用

    查看全部
  • 如何用mysql来解决这个最后一个的联系
    查看全部
    0 采集 收起 来源:练习

    2019-03-24

  • rollup(deptno,job)
    查看全部
  • having用在分组函数中,用于过滤
    查看全部
  • oracle的分组函数会过滤空值,建议➕NVL赋值
    查看全部
    0 采集 收起 来源:使用分组函数3

    2019-03-22

  • wm_concat行转列
    查看全部
    0 采集 收起 来源:使用分组函数2

    2019-03-22

  • 当一个结果有两种解法,就是实现一个功能可以是多种sql语句时,可以通过执行计划查看哪个的效率更高 -----

    1. explain plan for  sql语句;

    2. select * from table (dbm_xplan.display);


    查看全部
    0 采集 收起 来源:案例2

    2019-03-17

  • 示例一

    rownum 只能使用<,<=,不能使用> , >=

    行号的生成机制:oracle数据库是一个行式数据库(即:取了第一行才能取第二行,取了第二行才能取第三行,以此类推)

    oracle实现分页查询是通过嵌套子查询实现的

    --分页查询,先排序,每页4行,查询第二页(就是行号从5~8)

    select r,empno,sal

    from (select rownum r,empno,ename,sal

    from (select rownum,empno,ename,sal from emp order by sal desc) e1

    where rownum<=8) e2

    where r>=5;


    查看全部
    0 采集 收起 来源:案例1

    2019-03-17

  • 多行子查询中的null值问题

    One of the values returned by the inner query is a null value,and hence the entire query returns no rows.The reason is that all conditions that compare a null value result in a null.So whenever null values are likely to be part of the results set of a subquery,do not use the not in operator.The NOT IN operator is quivalent to <>ALL.

    Notice that the null value as part of the results set of a subquery is not a problem if you use the IN operator.The IN operator is equivalent to =ANY.For example,to display the employees who have subordinates,use the following SQL statement:

    SELECT * FROM emp WHERE empno IN (SELECT mgr FROM EMP);

    Alternatively,a WHERE clause can be included in the subquery to display all employees who do not have any subordinates:

    SELECT * FROM emp WHERE empno NOT IN (SELECT mgr FROM emp WHERE mgr IS NOT NULL);

    -----如果多行子查询出现null值,再使用not in进行多行子查询,将查不到任何记录,因为此时相当于不等于所有(<>all),所以在子查询中必须先在where条件中,把null值过滤掉,再使用not in

    查看全部
  • 子查询注意的10个问题

    子查询语法中的小括号

    子查询的书写风格

    可以使用子查询的位置:where,select,select,having,from  (在select后的子查询必须是一个单行子查询---即,子查询返回的结果集只有一条记录)

    不可以使用子查询的位置:group by

    强调:from 后面的子查询

    主查询和子查询可以不是同一张表

    一般不在子查询中,使用排序;但在Top-N分析问题中,必须对子查询排序

    一般先执行子查询,再执行主查询;但相关子查询例外

    单行子查询只能使用单行操作符;多行子查询只能使用多行操作符

    注意:子查询中是null值问题


    查看全部
  • 子查询概述

    子查询使用

    子查询类型

    查看全部
  • 自连接:当显示结果需要通过自连接实现,则需要给表一个别名,虚拟两张表进行连接查询。

    自连接优点:显示结果清晰明了     缺点:多表连接查询会产生笛卡尔积

    层次查询可以解决自连接查询产生的问题

    层次查询本质是一个单表查询

    相邻两层的上一层的员工号,用关键字prior实现

    connect by(connect by表示连接) 上一层的员工号=老板号(条件)

    start with empno=7839; ---从哪个节点开始找,此处可以从任意一个节点开始

    level为层次查询的伪列,要显示层次查询中的数据,必须显示加上level关键字

    总语句:

    select level,empno,ename,sal,mgr from emp

    connect by prior empno=mgr start with empno=7839;

    查看全部
  • 笛卡尔集=列数相加,行数相乘 

    目的:找到连接条件

    查看全部
  • group by语句的增强

    group by语句的增强用在报表中会非常有用

    select deptno,job,sum(sal) from emp group by rollup(deptno,job);

    https://img1.sycdn.imooc.com//5c867ab10001623005710488.jpg

    查看全部

举报

0/150
提交
取消
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!