【Oracle数据库】表查询(二)

Oracle的复杂查询

本文使用到的表

1.EMP(内容和注释在【Oracle数据库】表查询(一)一文中);

2.DEPT,其中deptno为部门编号,Dname为部门名称,Loc为部门地址;


3.SalGrade,其中Grade为工资等级,Losal和Hisal分别为该等级的工资下线和工资上线。

1.数据分组:常用的数据分组函数 -avg(),min(),max(),conut() 等等

如何显示所有员工中的最高工资和最低工资?


那我们如何在结果中显示出获得最高工资和最低工资的人呢(使用到了子查询)


我们再举两个例子:计算所有员工的平均工资和工资总和


统计共有多少个不同的岗位


2.group by 和 having 子句

Group by 用于对查询的结果分组统计

Having字句用于限制分组查询的结果 举几个例子就懂了

显示每个部门的最低工资和最高工资


显示每个部门每个不同岗位的最低工资和最高工资


显示平均工资低于2000的部门号和它的平均工资


注:分组函数只能出现在选择列表、havingorder by 字句里面。

如果在select语句同时包还有group byhavingorder by,那么他们的顺序是group byhavingorder by


3.多表查询:对两个或以上的表或视图进行的查询

我们可以给表起个别名来方便使用,直接看例子吧,简单明了

显示雇员名、员工工资和所在部门的名称


注意,在多表查询中至少指定(表个数-1)个条件(如上的where。。。),否则会出现笛卡尔集。您可以去掉上图中的where条件感受一下。

查询部门号为10的部门名称,员工名和工资


显示员工的姓名,所在部门的名称和工资级别(注意使用到的between关键字)


将上图的查询结果按工资等级升序排序


4.自连接:同一张表内的连接查询

显示员工的名字,和他上司的名字


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值