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

Oracle高级查询

  • 报表1111
    查看全部
  • 省略显示,注意第一句
    查看全部
  • 统计多种分组方式的
    查看全部
  • where后面不能有组函数,所以用having
    查看全部
  • having,用于筛选
    查看全部
  • 出现在select后的非分组函数(sum,avg等)必须出现group by后面
    查看全部
  • a not in(10,20,null)相当于a!=10 and a!=20 and a!=null,然而a!=null永远为假, 所以要排除空值,判断是否是null值,只能用is or is not而不能用= 或者!=。 select * from emp where empno not in (select mgr from emp where mgr is not null);
    查看全部
  • 多行操作符:in 示例:查询部门名称是SALES和ACCOUNTING的员工信息 select * from emp where deptno in (select deptno from dept where dname='SALES' or dname='ACCOUNTING'); 或者 select e.* from emp e,dept d where e.deptno=d.deptno and (d.dname='SALES' or d.name='ACCOUNTING');
    查看全部
  • 单行子查询示例1 1、查询员工信息,要求 职位与7566员工一样、薪水大于7782员工的薪水 select * from em where job=(select job from emp where empno=7566) and sal>(select sal from emp where empno=7782); 注意: 1、单行子查询只能使用单行操作符 2、在一个主查询中可以有多个子查询 示例2: 查询工资最低的员工信息 select * from emp where sal=(select min(sal) from emp); 示例3: 查询最低工资大于20号部门最低工资的部门号和部门的最低工资 select deptno ,min(sal) from emp group by deptno having min(sal)>(select min(sal) from emp where deptno=20);
    查看全部
  • 一般先执行子查询,再执行主查询;但相关子查询例外 相关子查询,外表必须起别名(如例子中给emp起别名为e),传递给子查询 select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal from emp e where sal>(select avg(sal) from emp where deptno=e.deptno);
    查看全部
  • 这期视频的意思就是,rownum的排序是默认的,所以我们先不要打乱行号rownum的顺序,所以只能分两次查询,括号里的查询是第一次,他把薪水按照降序排列,因为没有查询行号,所以行号这个伪列不用考虑进去,那么第二次查询才给括号里查到的数据(当成一个新的表)加上行号,就可以实现目的了 例子:查询工资前三的员工号,员工姓名、工资 select rownum,empno,name,sal from (select * from em order by sal desc) where rownum<=3;
    查看全部
  • 子查询需要注意的问题 不要忘记子查询语法中的小括号 形成良好的子查询的书写风格 可以使用子查询的位置:Where,select,having,from 不可以使用子查询的位置:group by 强调:from后面的子查询 主查询和子查询可以不是一张表 一般不在自查询中,使用排序;但是在Top-N分析问题中,必须对子查询排序 一般先执行子查询,再执行主查询;但相关子查询例外 单行子查询只能使用单行操作符;多行子查询只能多行操作符 注意:子查询中是Null值的问题
    查看全部
  • 子查询示例: 谁的工资比SCOTT高? 先查SCOT的工资,然后在根据查到的按照条件查询比SCOTT工资高的 select sal from emp where ename='SCOTT'; selct *from emp where sal>3000; 使用子查询来解决问题: select * from emp where sal>(select sal from emp where ename='SCOTT')
    查看全部
  • 子查询的使用
    查看全部
  • 不等值连接 示例:查询员工信息,要求显示:员工号,姓名,月薪,薪水的级别 select e.empno,e.ename,e.sal,s.grade from emp e,salgrade s wehere e.sal between s.losal and s.hisal; "between and"语句代替大于等于和小于等于 between and 小值在前,大的值在后。
    查看全部

举报

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

微信扫码,参与3人拼团

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

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