Oracle单行函数 (二)

     单行函数: 每个数据库函数自己所支持的操作函数称之为单行函数。单行函数分为:字符函数、数字函数、日期函数、转换函数、通用函数。字符函数(字符函数的功能主要是进行字符串的操作)主要是下面几种操作

1.字符函数

UPPER(字符串);将输入的字符串变成大写返回

LOWER(字符串);将输入的字符串变成小写

LENGTH();字符长度

replace();字符替换

substr(开始点,结束点);字符串截取

lower():转换为小写    Select ENAME,LOWER(ENAME) From EMP

upper():转换为大写   Select upper('abcd') From DUAL

initcap ():首字母大写  Select INITCAP(ENAME) From EMP

concat():连接两个不同的列,CONCAt只能接受两个参数   Select CONCAT(EMPNO,ENAME) From EMP

substr():截取子串(下标从1或0开始是一样的)  

Select SUBSTR(ENAME,2) From EMP--从第2个位置截到末尾

Select SUBSTR(ENAME,2,3) From EMP--从第2个位置截取3个

注意:请问SUBSTR()函数截取的时候下标是从0还是从1开始?

在oracle数据库中,SUBSTR()函数从0或从1开始都是一样的

SUBSTR()也可以设置为负数,表示由后指定截取的开始点

length():提取长度    Select ENAME,length(ename) From emp

INSTR():相当于String类中的indexOf,求索引   Select ENAME,instr(ename,'A') From emp

LPAD()和RPAD()的用法

表示补充的含义

Select LPAD(SAL,10,'*') From EMP

将sal显示为10位,不足的位置补上字符*     Select RPAD(SAL,10,'*') From EMP

trim两边滤空(过滤字符串两边的空格)    Select Trim('   abc      ') From EMP;   

使用LTrime()和RTrim()过滤一边的空格      Select LTrim('   A B C      ') From EMP;

REPLACE():替换     Select ename ,Replace(ename,'A','B') From EMP


2.数字函数

ROUND():四舍五入
TRUNC():只保留整数部分
MOD(除数,被除数):取余数
Select ROUND(16.336666663,3) From EMP;
Select TRUNC(16.33666666,3) From EMP;
Select Mod(8,3) From EMP;


3.日期函数

如果要想进行日期函数的操作,先取得当前日期,用SYSDATE取得即可。SELECT SYSDATE FORM DUAL;

除了以上当前日期之外,在日其中也可进行若干计算:日期+数字=日期   

表示若干天之后的日期

SELECT SYSDATE+3,SYSDATE+300 FROM DUAL;
日期-数字=日期,表示若干前的日期
SELECT SYSDATE-3,SYSDATE-300
日期-日期=数字,表示的是两个日期间的天数,但是肯定是大日期-小日期
例:求出每个雇员到今天为止的雇佣天数
SELECT ENAME,HIREDATE,SYSDATE-HIREDATE FROM DUAL;
除了日期的三个公式之外,也提供了如下的四个函数:
LAST_DATY(日期):求出指定日期的最后一天;
例: 求出本月的最后一天日期
SELECT LAST_DAY(SYSDATE) FROM DUAL;
NEST_DAY(日期,星期数):求出下一个指定星期X的日期;
例子:
求出下一个周一
SELECT NEXT_DAY(SAYDATE,'星期一') from dual;
ADD_MONTHS(日期,数字):求出若干月之后的日期
例:求出后三个月的日期
SELECT ADD_MONTHS(SYSDATE,3) FROM DUAL;
MONTHS_BETWEEN(日期1,日期2):求出两个日期经历的月份;

SELECT ENAME,HIREDATE TTRUNC(MONTHS_BETWEEN(SYSDATE,HIREDATE)) FROM DUAL;

注意:在所有开发之中,如果是日期操作,尽量使用以上函数,可避免闰年的问题! 


4.转行函数(核心)
在Oracle数据库中主要使用三种数据类型:数字(NUMBER)、字符串(varchar2)日期(DATE),转换函数的主要功能室完成这几种数据间的相互转换的操作,一共有三种转换函数:

TO_CHAR(字符串,格式字符串):将日期或者数字变成字符串显示;
TO_DATE(字符串,格式化字符串):将字符串变为DATE数据显示;
TO_NUMBER(字符串):将字符串变为数字显示

(1):TO_CHAR()函数
例:SELECT TO_CHAR(SYSDATE,'FMYYYY-MM-DD') FROM DUAL;FM是formate的作用,去掉了0导
SELECT TO_CHAR(SYSDATE,'FMYYYY-MM-DD HH24:mi:ss') FROM DUAL;
一定要注意,使用TO_CHAR()函数之后所有的内容都是字符串,而不再是DATE类型的数据,TO_CHAR()函数也可以用于数字的格式化上SELECT TO_CHAR(99999999,'L999,999,999') FROM DUAL;  L是当前系统环境下货币的符号

(2):TO_DATE()函数
此函数的主要功能室将一个字符串变为DATE类型的数据
SELECT TO_DATE('1989-09-12','YYYY-MM-DD') FROM DUAL;

(3):TO_NUMBER :基本不用
TO_NUMBER函数是将字符串转变为数字的函数
SELECT TO_NUMBER(’1‘)+TO_NUMBER('2') FROM DUAL;
等价于 SELECT '1'+'2' from dual;
开发中重点的函数是在TO_CHAR()上,其次是TO_DATE()函数


5:通用函数
通用函数主要是有2个:NVL()、DECODE)这2个函数算是oracle自身的函数

1:NVL函数,处理NULL

2:DECODE()函数:多数值判断
DECODE()函数,非常类似于程序中的if else语句,唯一不同的是DEDECODE()
函数是数值,而不是逻辑条件。

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值