oracle单行函数

本小白日常oracle学习总结,若有错误望海涵,并希望大神能指点迷津

单行函数:完成某一具体功能的操作函数

分为以下几种:字符串函数、数值函数、日期函数、转换函数、通用函数

1. 字符串函数:

			主要处理字符串数据(数据可能从列上或者直接设置的常量)

upper (列|字符串)-------将传入的字符串变为大写
用法:
select upper (pinym) from ryxx
&表示输入执行后根据你输入的数值进行操作

select* from ryxx where pinym = upper('&a')

在这里插入图片描述

lower (列|字符串)-------将传入的字符串变为小写(同upper)
initcap (列|字符串)---------开头首字母大写,其余小写

例:update ryxx set pinym = initcap(pinym)

在这里插入图片描述
length(列|字符串)----------返回字符串的长度
substr(rukmxh,15,6) --截取rukmxh字段从第十五位之后的六个字符
substr(rukmxh,length(rukmxh)-3)–可以嵌套使用
replace(列|字符串,原字符,替换字符)------替换函数

select replace(name,'张三','李四') from dual;
\\把dual中name为张三的换成李四

2. 数值函数

**round(列|数字,数字)**四舍五入(如果设置为负数,则会进行整数位的四舍五入)
例:

select round(789.25685,2) from dual 

在这里插入图片描述
trunc(列|数字,数字) 数字截取,不进位
使用方法与round函数相识,唯一的区别就是trunc函数直接把小数点扔掉,不进位
mod(数字,数字) 求模(计算余数)
例:

select mod(3,2) from dual
\\结果为1

floor(列|数字)-------向下取整
//5.6=5
ceil(列|数字)--------向上取整
//5.2=6
**
abs(列|数字)--------取绝对值
//-9=9

3. 日期函数

**
oracle为日期提供了一个伪列,sysdate ,systimestamp
伪列:不是自己创建的列,但是存在在每一个表中
sysdate伪列,提供当前日期 --本次sysdate日期:2019-02-16 17:30:01
例:

select sysdate,caozyxm from caozyxx 

在这里插入图片描述

日期操作公式:
日期+数字=日期–表示若干天之后的日期
日期-数字=日期–表示若干天之前的日期
日期-日期=数字–表示间隔天数,可为负数
注:由于每个月天数不同,使用加法计算日期不准确

**add_months()**在指定日期上加上月数
例:select add_months(sysdate,5) from dual
在这里插入图片描述
**months_between(列|日期,列|日期)**返回间隔的月数
例:select trunc(months_between(sysdate,sysdate-300)) from dual
在这里插入图片描述
**last_day(列|日期)**返回当前日期所在月的最后一天
例:select last_day(sysdate) from dual
**next_day(列|日期,星期几)**返回当前日期后的下一个周几是几号
例:select next_day(sysdate,'星期日') from dual
在这里插入图片描述
**

4. 转换函数

**
to_char(列|日期|数字,转换格式) ---- 将日期或数字转化为指点日期的字符串

转换格式:
日期:yyyy-mm-dd
时间:hh-mi-ss/hh24-mi-ss
数字:任意数字(9) 本地货币符号(L)

日期转换:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
使用to_char函数可以实现日期格式的拆分

select to_char(sysdate,'yyyy'),to_char(sysdate,'mm') from dual;

在这里插入图片描述
数字转换:

select to_char(56865566566,'L999,999,999,999,999,999,999') from dual;

在这里插入图片描述
to_date(列|字符串,转换格式)—按照指定格式将编写的字符串转换为日期函数
例:

select to_date('1998-02-01','yyyy-mm-dd') from dual; 

在这里插入图片描述
to_number(‘字符串’)—将一串字符串转换为数字(不常见,因为oracle中可以自动转换为数字)
例:

select to_number('1')+to_number('2') from dual;

在这里插入图片描述

**

**

5. 通用函数

**

**
nvl(列|null,默认值)—如果传入的值为空,则使用默认值处理,如果不为空,则使用原始数值处理
在这里插入图片描述
根据以上表格:
select yi,er,(yi+er) from 表名
会得出:
在这里插入图片描述
注:这是因为第一行第二列中数据为空值,oracle不确定值为多少,返回空值,这种情况应该用nvl函数处理

select yi,er,(yi+nvl(er,0)) from ceshi

在这里插入图片描述
decode(列|字符串|数值,比较内容1,显示内容1,比较内容2,显示内容2,…[默认显示内容])
解释:设置的内容会与比较内容进行比较,如果内容相同,则会使用显示内容显示,如果都不相同,则使用最后的默认显示。默认为可选内容,如果没有设置默认值,则显示为空
例:

select yi,decode(er,null,'无',100,'中级','高级') er from ceshi

原表:
在这里插入图片描述
执行语句之后:
在这里插入图片描述
instr(列|字符串, 值)函数
描述:值在列|字符串中查找,返回从开始查第几个是
举例:
instr(hello,l)返回3,即第一次出现l的位置
instr(caozyxm,‘admin’),即该值中有admin返回1,没有则返回0
在这里插入图片描述
**

系统函数:

**
sys_context
通过该函数可以查看出一些重要信息:
terminal:当前会话客户单所对应的终端的标识符;
language:语言,字符集
db_name:当前数据库名称;
nls_date_format:当前会话客户所对应的日期格式;
session_user:当前会话客户所对应的数据库用户名;
current_schema:当前会话客户所对应的默认方案名;
通过select sys_context('userenv','language') from dual

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值