Oracle单行函数

单行函数
数据库的方便开发,往往会提供支持函数,利用这些函数针对数据进行特定的操作。

Oracle 之中对于函数基本的使用结构如下
返回值 函数名称(列 | 数据)
根据单号函数的特点可以分为以下几种:
1.。字符串函数,
2.。数据函数
3。日期函数,
4。转换函数,
5。通用函数。

字符串函数

字符串函数可以针对字符串函数进行处理,Oracle 之中对于此类函数定义有如下几点。UPPER()、LOWER()、
INITCAP() 、REPLACE() LENGTH() SUBSTR

1.大小写转换函数
转大写函数:字符串UPPER(列 |字符串)
转小写函数:字符串lower(列 |字符串)
实例
select lower (‘hello’),upper(‘hello’) from dual
#dual 验证函数虚拟表
实例2
select *from 表 where 列 =upper(‘&inputname’)
运行后用户输入字符串将会转换成大写返回 变量中

2,首字符大写
语法 :字符串 INITCAP (列 | 数据)
select initcap (‘helloWord’) from dual
除了首字母其他都变成小写

3计算字符串的长度
语法:数字 LENGTH(列 | 字符串数据 )
例句:
select * from 表 where length(列)=5

4.字符串替换。
可以使用指定的内容替换原始字符串的数据

范例:将所有人的姓名中的A替换为 “
select REPLACE(列,UPPER (‘a’),’
’) FROM 表
范例:取消字符串所有的空格
select replace('hello word ‘,’ ') from dual;

5、字符串截取操作
语法一 : 字符串 SUBSTR (列 | 数据,开始点),从指定的开始点一直截取到结尾;
语法二:字符串 SUBSTR(列 | 数据,开始点,结束点);截取指定范围的字符串。

范例一:截取word
select substr(‘helloword’,6) from dual;
范例二 截取后5个字符
select substr(‘helloword’,-4) from dual; #只有oracle 支持负数函数
注意:oracle中字符串索引都是从1开始,及时设置为0也自动变成1

数值函数
数值函数就是针对数字进行处理的。有3个主要函数:ROUND() TRUNC() MOD()
1.四舍五入操作:
语法:数字 ROUND(列 | 数字 【,保留小数位】)
例句
select
round(178915.62342), #结果 178916
round(178915.62342,-5), #结果200000
round(-15.32342) from dual; #结果15
2.截取小数,所有小数直接截取,不会进位

3,求模 (求余数)
语法:数字 MOD(列 1| 数字1,列2 |数字2)
例句:
select mod(10,3)from dual;

日期函数 Oracle 自己的特色
日期函数主要是进行日期处理的,比较关键的问题怎么获取当前时间,Oracle中专门提供一个数据伪列,它是一个列,但是这个列不存在与表中,可是像列一样却可以进行查询,这个伪列就是SYSDATE
提取现在日期
SELETC SYSDATE FROM DUAL
SELETC SYSDATE ,SYSTIMESTAMP FROM DUAL
实际上对于日期提供有一下三种计算方式;
1.日期+数字=日期 若干天后的日期
2.日期-数字=日期 若干天前的日期
3.日期-日期=数字 这个两个日期相差多少天

范例一
select sysdate+10,sysdate+9999 from dual;#最大支持9999

1.计算两个日期所经历的月数总和
语法:数字 MONTHS_BETWEEN(日期1,日期2)
范例二 日期减去日期
SELECT 列 TRUNC(MONTHS_BETWEEN(SYSDATE,含有列时间)/12)years FROM 表
#提取含有时间的列 现在时间减去列时间得到月除以12 得到年,得出年后用TRUNC函数取整数 再使用years别名 FROM 表

2.增加若干月之后的日期
语法:日期 ADD_MONTHS(日期,月数)
范例
select add_months(sysdate,4),add_months(sysdate,20), add_months(sysdate,9999)from dual;

3.计算指定日期所在的月最后一天;
语法:日期 LAST_DAY (日期)
范f例 查找一个人所在入职的日期为当时月的第二天
SELECT LAST_DAY(入职时间列),LAST_DAY(入职时间列)-2
from 表
where LAST_DAY(入职时间列)-2=入职时间列

4.计算下一个指定的星期
语法:日期 NEXT_DAY(日期,一周时间数)
范例
select next_day(sysdate,‘星期日’) from dual;

转换函数

就是将字符串和日期、数字的转换,转换函数移动分为三种
TO_CHAR()、TO_DATE()、TO_NOMBER()

1.转换字符串函数,数字或者是日期可以转换为字符串。
语法格式:字符串_TO_CHAR(列 | 日期 |数字,转换格式)。
对于转换格式有两种格式:
日期转换为字符:年(yyyy),月(mm),日(dd)
时(hh,hh24),分(mi), 秒(ss)

  1. 数字转换为字符串:任意的一位数字用(9),货币(L,本地货币)
    例句一:格式化日期
    select to_char(sysdate,'yyyy-mm-dd ') ,to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’)from dual;

范例二: 提取时间的某一个值转换成字符串
select to_char(sysdate,'mm ') ,to_char(sysdate,‘yyyy hh24:mi:ss’)from dual;

范例三:转换数字额格式,并加上本地货币,
select to_char(56777654543454,‘L999,999,999,999,999,999’) from dual;

2.字符串转日期函数:
字符按照日月年的方式编写,可以自动转换日期类型,使用TO_DATE()函数
语法:TO_DATE(字符串,转换格式);
年(yyyy),月(mm),日(dd)时(hh,hh24),分(mi), 秒(ss)
例句:
select to_date(‘1987-07-21’,‘yyyy-mm-dd’) from dual;

通用函数(Oracle自己的特色)
在Oracle里面提供两个简单的数据处理函数:NVL() ,DECODE()
1.NVL 处理null:
语法:NVL(列 | 默认值)

2,decode()多数值判断
语法:decode (列,匹配内容1,显示内容1,匹配内容2,显示内容2。。。。。【默认值】) #没有匹配的内容显示匹配值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值