单行函数: 每个数据库函数自己所支持的操作函数称之为单行函数。单行函数分为:字符函数、数字函数、日期函数、转换函数、通用函数。字符函数(字符函数的功能主要是进行字符串的操作)主要是下面几种操作
1.字符函数
UPPER(字符串);将输入的字符串变成大写返回
LOWER(字符串);将输入的字符串变成小写
LENGTH();字符长度
replace();字符替换
substr(开始点,结束点);字符串截取
lower():转换为小写 Select ENAME,LOWER(ENAME) From EMPupper():转换为大写 Select upper('abcd') From DUAL
initcap ():首字母大写 Select INITCAP(ENAME) From EMP
concat():连接两个不同的列,CONCAt只能接受两个参数 Select CONCAT(EMPNO,ENAME) From EMPsubstr():截取子串(下标从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 empINSTR():相当于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()
函数是数值,而不是逻辑条件。