Java SQL 语言:(六)字符函数_数值函数_日期函数_转换函数_通用函数_分组函数

1.字符函数

1.lower, upper, initcap

  • lower, 将所有字母小写
  • upper, 将所有字母大写
  • initcap, 所有单词首字母大写
    查询所有员工的姓名, 分别显示小写, 大写和首字母大写
select ename, lower(ename), upper(ename), initcap(ename) from emp;

2.length

用于计算字符串的长度

  • 查询所有员工的姓名及姓名的长度
select ename, length(ename) from emp;
  • 查询所有姓名长度为5的员工的信息
select * from emp where length(ename)=5;

3.replace

用于进行字符串的替换

  • 查询所有员工的姓名, 将A替换为a
select ename, replace(ename, 'A', 'a') from emp;

4.substr

用于进行字符串的截取

  • 查询所有员工的姓名, 并显示姓名的前3个字母
select ename, substr(ename, 1, 3) from emp;
  • 查询所有员工的姓名, 并显示姓名的后3个字母
select ename, substr(ename, length(ename)-2, 3) from emp;
  • 第三个参数可以省略, 表示一直截取到末尾, 所以可以简写为:
select ename, substr(ename, length(ename)-2) from emp;
  • 第二个参数可以是负数, 表示倒着截取, 又可以简写为:
select ename, substr(ename, -3) from emp;

2.数值函数

1.ceil

向上取整

select ceil(113.0000001) from dual;

2.floor

向下取整

select floor(223.9999999) from dual;

3.round

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

select round(156.9444449, -2) from dual;

4.trunc

截断小数位,后面那个1是指定截断小数位数,默认0位

select trunc(123.456, 1) from dual;

3.日期函数

1.sysdate

获取系统时间

select sysdate from dual;

2.months_between

计算两个日期间的月数

  • 查询所有员工的入职的月数
select ename, months_between(sysdate, hiredate) from emp;

3.add_months

给日期加减月数

select sysdate, add_months(sysdate, -6) from dual;

4.last_day

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

select sysdate, last_day(sysdate) from dual;

5.next_day

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

select sysdate, next_day(sysdate, '星期一') from dual;

4.转换函数

用于在不同数据类型间进行转换. 数值类型, 字符串类型, 日期类型

1.to_number

将字符串转换为数字. 涉及到钱的时候,
$123,123,123.00-123123123.00

select to_number('¥123,123,123.00', 'L999,999,999.00')+1 from dual;

2. to_date

将字符串转换为日期

select to_date('2022-12-12 23:20:20', 'YYYY-MM-DD HH24:MI:SS') from dual;

3.to_char

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

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.通用函数

1.nvl

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

  • 查询所有员工的姓名, 工资, 提成和总工资(工资+提成)
select ename, sal, comm, sal+nvl(comm, 0) total from emp;

2.nvl2

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

select ename, sal, comm, nvl2(comm, sal+comm, sal) total from emp;

3.decode

类似于switch…case…,
查询所有的职位, 并显示对应的中文描述

select distinct job, decode(job, 'CLERK', '职员', 'SALESMAN', '销售', 'PRESIDENT', '董事长', 'MANAGER', '经理', 'ANALYST', '分析师') job_zh from emp;

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

1.sum

求和
查询所有员工的工资总和

select sum(sal) from emp;

2.avg

求平均值
查询平均工资

select avg(sal) from emp;

3.max

求最大值
统计公司的最高工资

select max(sal) from emp;

4.min

求最小值
统计公司的最低工资

select min(sal) from emp;

5.count

计数
统计公司的员工总数

select count(empno) from emp;
select count(*) from emp;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地球村公民

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值