经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
oracle学习笔记(十一) 高级查询 - Stars-one
来源:cnblogs  作者:Stars-one  时间:2019/5/20 8:49:57  对本文有异议

高级查询

分组查询

  1. select * from student
  2. [where ]
  3. [having ] --二次限定
  4. [order by] --asc升序 desc降序 默认升序

查看EMPLOYEE表中,员工在同一部门做相同工作且总工资大于5000,平均工资小于1500的薪水情况和人数?

  1. select deptno,job,count(*) from employee
  2. group by deptno,job
  3. having avg(sal)<1500 and sum(sal) >5000
  4. order by deptno;

分组查询注意事项:
如果在查询结果中的某些字段上没有使用分组函数,那么这些字段就必须出现在group by子句中。这是一个分组查询的强制性规则。

  1. --查询每个部门的人数以及部门的总工资
  2. --两个列都是使用了分组函数,所以group by 语句中可以省略不写
  3. --但deptno没有使用分组函数,所以要group by语句中要出现deptno
  4. select deptno,count(empno),sum(sal) from employee
  5. group by deptno

非等值连接

简单地来说,连接条件就是某些值满足在某个范围之内

  1. --salgrade表中三个属性,losal-hisal是工资范围,grade则是该范围对应的等级
  2. select ename,salgrade from employee,salgrade
  3. where sal between losal and hisal;

内连接inner join(等值连接)

多用于表之间有关联关系,如主外键关系的表

  1. select * from employee e
  2. join department d --这里相当于inner join,inner可以省略
  3. on e.deptno = d.deptno;
  4. --等值连接
  5. select * frjom employee e,department d
  6. where e.deptno = d.deptno;

左外连接left outer join

多用于表之间有关联关系,如主外键关系的表,不过以左边数据为标准,未匹配的以空行出现
一般outer可以省略不写

  1. select * from employee e
  2. left join depaterment d on e.deptno = d.deptno;

右外连接

与左外连接相反,以右边数据为标准,未匹配的以空行出现,好像不常用

子查询

单行子查询可以出现在以下位置:

  • select语句
  • from语句
  • join子句中
  • HAVING子句中

多行子查询:

  1. ANY(值列表): 与子查询结果列表中的任何一个值比较。
  2. ALL(值列表):与子查询结果列表中的所有值比较。
  3. IN(值列表): 等于列表中的任何一个值。
  1. select *
  2. from employee
  3. where sal<any(select distinct sal from employee where job='SALESMAN')

原文链接:http://www.cnblogs.com/kexing/p/10889316.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号