Oracle数据库查询及函数

********************使用order by 进行排序*************************

需求1:
--查询所有部门信息 按部门编号降序排列

select * from dept order by deptno desc

 

写了order by deptno 以后 如果没有指定升序还是降序 默认是升序

相当于写上 asc 降序是 desc


需求2:
--查询所有的员工的信息 根据薪水升序排列


select * from emp order by sal


需求3:
---查询员工的姓名、薪水、部门编号 先按部门编号升序、部门编号相同的按薪水降序

select ename,sal,deptno from emp order by deptno asc,sal desc


需求4:

--查询姓名第二个字母不是A的,并且月薪大于1000的员工的
--姓名和年薪(不包括奖金),按照工资降序排序.

select ename,sal*12 + nvl(comm,0) as 年薪 from emp where
ename not like '_A%' and sal>1000
order by sal desc

 


oracle中的函数类似于java中的方法,可以提供某些功能..


特点: oracle中函数必须有返回值!


分类:

1. 单行函数

一行输入 一行输出

2. 组函数

多行输入 一行输出

 

*************************单行函数*****************************

一行输入 一行输出


*****************组函数(也叫做聚合函数)*************************

多行输入 一行输出


1. 最大值 max

2. 最小值 min

3. 平均值 avg

4. 求和 sum

5. 求总共有多少条记录

select count(*) from emp where deptno=10

 

--需求1:求每个部门的平均薪水

select deptno,avg(sal) from emp group by deptno

 

小技巧:

1.一说每就需要分组,而且每后面的条件就是分组的条件


2. 只要使用 5个组函数其中之一,都需要分组

 

group by 分组的规则


一旦使用了group by 进行分组, select 后面的字段 要么是5个组函数

之一、要么是分组的条件,不能写其他字段

 

使用having 对分组后的数据进行过滤

 

对记录进行过滤 使用where,分组后对分组后的数据进行过滤 使用having

 

select 语句总结:


select * from emp
where 条件
group by deptno
having //对分组进行过滤
order by avg(sal) desc

转载于:https://www.cnblogs.com/MrTanJunCai/p/9907385.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值