Oracle数据库中的函数

注:dual为虚表,没有实际意义,只是为了补全sql语句

单行函数:作用于一行,返回一个值

--字符函数,小写变大写
select upper('yes') from dual;

在这里插入图片描述

--字符函数,大写变小写
select lower('YES') from dual;

在这里插入图片描述

--数值函数
select round(26.18) from dual;

在这里插入图片描述
四舍五入,后面的参数表示保留的小数位数,也可以是负数(就是到整数部分了)
–数值函数
select round(26.18,1) from dual;
在这里插入图片描述

--数值函数
select round(26.14,1) from dual;

在这里插入图片描述

--直接截取保留一位小数
select trunc(56.16,1) from dual;

在这里插入图片描述

--求余数
select mod(10,3) from dual;

在这里插入图片描述

日期函数(可以直接加减,得出的是天)

--日期函数
--查出EMP表中所有员工入职距离现在多少天
select sysdate-e.hiredate from emp e;

在这里插入图片描述

--算出明天此刻,可以直接与数字加减
select sysdate+1 from dual;

在这里插入图片描述

--查出EMP表中所有员工入职距离现在几月
select months_between(sysdate,e.hiredate) from emp e;

年是没有这个函数的,所以年不能这样用的
在这里插入图片描述

--查出EMP表中所有员工入职距离现在几年
select months_between(sysdate,e.hiredate)/12 from emp e;

每年固定有12个月
在这里插入图片描述

–查出EMP表中所有员工入职距离现在多少周
select (sysdate-e.hiredate)/7 from emp e;
在这里插入图片描述

--转换函数【日期转字符串】【取出之后是字符串】
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;

在这里插入图片描述

select to_char(sysdate,'fm yyyy-mm-dd hh:mi:ss') from dual;

在这里插入图片描述

select to_char(sysdate,'fm yyyy-mm-dd hh24:mi:ss') from dual;

在这里插入图片描述


--字符串转日期【取出之后是日期类型】
select to_date('2019-5-25 17:14:38','fm yyyy-mm-dd hh24:mi:ss') from dual;

在这里插入图片描述

通用函数


--算出EMP表中所有员工的年薪记得加上奖金
--奖金里面有null值,如果null值和任意数字做算数运算,结果都是null
select e.sal*12+nvl(e.comm,0) from emp e;

nvl(e.comm,0)表示如果e.comm为null就用后面的值
在这里插入图片描述

多行函数
EMP表中字段
在这里插入图片描述

--多行函数【聚合函数】:作用域多行,返回一个值
--count(1)就相当于count(empno),此外count(*)底层走的还是count(1)
select count(1) from emp;
select sum(sal) from emp;
select max(sal) from emp;
select min(sal) from emp;
select avg(sal) from emp;

结果分别是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值