前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle数据库相关函数解析

Oracle数据库相关函数解析

作者头像
时间静止不是简史
发布2020-07-27 09:53:12
6610
发布2020-07-27 09:53:12
举报
文章被收录于专栏:Java探索之路Java探索之路

1、字符函数

1.1 lower, upper, initcap

a) lower, 将所有字母小写 b) upper, 将所有字母大写 c) initcap, 所有单词首字母大写

查询所有员工的姓名, 分别显示小写, 大写和首字母大写

代码语言:javascript
复制
select ename, lower(ename), upper(ename), initcap(ename) from emp; 

在 Oracle 中, 提供了一个虚拟表格, 叫 dual, 专门用于进行测试, 可以从daul 中查询任何数据

1.2 length

用于计算字符串的长度

a) 查询所有员工的姓名及姓名的长度

代码语言:javascript
复制
select ename, length(ename) from emp; 

b) 查询所有姓名长度为 5 的员工的信息

代码语言:javascript
复制
select * from emp where length(ename)=5; 

1.3 replace

用于进行字符串的替换

a) 查询所有员工的姓名, 将 A 替换为 a

代码语言:javascript
复制
select ename, replace(ename, 'A', 'a') from emp; 

1.4 substr

用于进行字符串的截取

a) 查询所有员工的姓名, 并显示姓名的前 3 个字母

代码语言:javascript
复制
select ename, substr(ename, 1, 3) from emp; 

b) 查询所有员工的姓名, 并显示姓名的后 3 个字母

代码语言:javascript
复制
select ename, substr(ename, length(ename)-2, 3) from emp; 

第三个参数可以省略, 表示一直截取到末尾, 所以可以简写为:

代码语言:javascript
复制
select ename, substr(ename, length(ename)-2) from emp; 

第二个参数可以是负数, 表示倒着截取, 又可以简写为:

代码语言:javascript
复制
select ename, substr(ename, -3) from emp;

2、数值函数

1.1 ceil

向上取整

代码语言:javascript
复制
select ceil(123.0000001) from dual; 

1.2 floor

向下取整

代码语言:javascript
复制
select floor(123.9999999) from dual;

1.3 round

四舍五入 第二个参数可以控制四舍五入的位数, 正数表示小数点后, 负数表示小数点前.

代码语言:javascript
复制
select round(156.9444449, -2) from dual; 

1.4 trunc

截断,对数字不进行以上处理

代码语言:javascript
复制
select trunc(123.456, 1) from dual;

3、日期函数

3.1 sysdate 获取系统时间

代码语言:javascript
复制
select sysdate from dual; 

3.2 months_between

计算两个日期间的月数

a) 查询所有员工的入职的月数

代码语言:javascript
复制
select ename, months_between(sysdate, hiredate) from emp; 

3.3 add_months

给日期加减月数

代码语言:javascript
复制
select sysdate, add_months(sysdate, -5) from dual; 

3.4 last_day

计算给定日期所在月份的最后一天是哪个日期

代码语言:javascript
复制
select sysdate, last_day(sysdate) from dual; 

3.5 next_day

基于给定日期计算下个给定的星期几是什么日期

代码语言:javascript
复制
select sysdate, next_day(sysdate, '星期二') from dual;

4、转换函数

4.1 to_number

将字符串转换为数字. 涉及到钱的时候, 逗号后面表示转换的格式 $123,123,123.00 ->123123123.00

代码语言:javascript
复制
select to_number('¥123,123,123.00', 'L999,999,999.00')+1 from dual; 

4.2 to_date

将字符串转换为日期

代码语言:javascript
复制
select to_date('2022-12-12 23:20:20', 'YYYY-MM-DD HH24:MI:SS') from dual; 

4.3 to_char

将数字或日期转换为字符串

代码语言:javascript
复制
select to_char(1231231231, 'L999,999,999,999.99') from dual; 
select sysdate, to_char(sysdate, 'yyyy"年"mm"月"dd"日" hh24:mi:ss') from dual;

5、通用函数

5.1 nvl

用来处理空值, 如果某个字段为空, 则使用对应的数据进行替换 注意: 两者的数据类型必须一致

查询所有员工的姓名, 工资, 提成和总工资(工资+提成)

代码语言:javascript
复制
select ename, sal, comm, sal+nvl(comm, 0) total from emp; 

5.2 nvl2

有三个参数, 如果第一个参数不为空, 则使用第二个参数, 如果为空, 则使用第三个参数

代码语言:javascript
复制
select ename, sal, comm, nvl2(comm, sal+comm, sal) total from emp; 

5.3 decode

类似于 switch…case…,

查询所有的职位, 并显示对应的中文描述

代码语言:javascript
复制
select distinct job, decode(job, 'CLERK', '职员', 'SALESMAN', '销 售 ', 'PRESIDENT', '董 事 长 ', 

‘MANAGER’, ‘经理’, ‘ANALYST’, ‘分析师’) job_zh from emp;

6、分组函数(聚组函数)

6.1 sum

求和

查询所有员工的工资总和

代码语言:javascript
复制
select sum(sal) from emp; 

6.2 avg

求平均值

查询平均工资

代码语言:javascript
复制
select avg(sal) from emp; 

6.3 max

求最大值

统计公司的最高工资

代码语言:javascript
复制
select max(sal) from emp;

6.4 min

求最小值

统计公司的最低工资

代码语言:javascript
复制
select min(sal) from emp; 

6.5 count

计数

统计公司的员工总数

代码语言:javascript
复制
select count(empno) from emp; 
select count(*) from emp;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、字符函数
    • 1.1 lower, upper, initcap
      • 1.2 length
        • 2、数值函数
          • 3、日期函数
            • 4、转换函数
              • 5、通用函数
                • 6、分组函数(聚组函数)
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档