Oracle数据库学习心得(二)

20、单行函数:每次执行函数,传入一行列值,返回一个结果;多行函数:每次执行函数,传入多行列值,返回一个结果
21、字符型函数:
(1)大小写转换:lower(小写)、upper(大写)、initcap(首字母大写)
(2)拼接字符串:concat,例 select concat(‘hello’,‘world’) from dual;
(3)截取字符串:substr,截取字符串,数据库的字符串下标从1开始,例:

select substr('abcdefg',3) from dual;--cdefg
select substr('abcdefg',3,2) from dual;--cd
select substr('abcdefg',-3) from dual;--efg
select substr('abcdefg',-3,2) from dual;--ef

(4)字符串长度:length,例:

select length('abcd') from dual;--4
select length('') from dual;--null

(5)查找字符串下标,找不到返回0:instr,例:

select instr('abcdefg','cd') from dual;--3
select instr('abcdefg','xxx') from dual;--0
select instr('abcdefgabcdefg','cd',4) from dual;--10,跳过前3个,从下标4开始查找
select instr('abcdefgabcdefg','cd',-1) from dual;--负数表示反方向查找
select instr('abcdefgabcdefg','cd',1,1) from dual;--查找第n次出现的位置

(6)左填充:lpad;右填充:rpad。如果位数不足会填充,但是空值会返回null,例:

select lpad('abcd',7,'#') from dual;--###abcd
select rpad('abcd',7,'*') from dual;--abcd***
select lpad('',7,'#') from dual;--null

(7)修剪两边指定字符:trim,只能修剪两边,而不能修剪中间的值,例:

select trim('a' from 'aaabcdaaefgaa') from dual;--bcdaaefg
select trim('b' from 'aaabcdaaefgaa') from dual;--aaabcdaaefgaa

(8)替换字符串:raplace,例:

select replace('abcdefgabcd','cd','#') from dual;--ab#efgab#

22、数字型函数:
(1)取模运算:mod,例:

select mod(5,3) from dual;--2

(2)截断:trunc,例:

select trunc(3.1415927) from dual;--3
select trunc(3.1415927,3) from dual;--3.141

(3)四舍五入:round,例:

select round(3.1415927,3) from dual;--3.142

(4)进位取整:ceil,例:

elect ceil(3.0001) from dual;--4

23、日期型函数:
(1)当前系统时间:sysdate,例:

select sysdate from dual;--2018/10/13 18:25:06

(2)oracle中日期类型没有常量这一说,默认日期字符串格式dd-mon-rr,例:‘01-1月-18’
(3)两个日期类型可以做加减法,返回两个日期间隔天数
(4)求两个日期间隔的月:months——between(第一个日期,第二个日期)
(5)日期加减若干月,返回一个新的date类型数据:add_months(日期,加减的月[加是正数, 减是负数])
(6)返回指定日期下一个最近的星期几的日期,1~7代表日到六:next_day(日期,星期几/数字)
(7)返回指定日期的最后一天:last_day(日期)
(8)四舍五入日期:round(日期)
(9)日期的截断:trunc(日期)
(10)数字和日期不能做任何的类型转换
(11)把一个日期按照指定格式转换为字符串:to_char(日期,格式),例:

select '现在的时间是:'|| to_char(sysdate,'yyyy-mm-dd') from dual;
select '现在的时间是:'|| to_char(sysdate,'mm/dd/yyyy') from dual;
select '现在的时间是:'|| to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select '现在的时间是:'|| to_char(sysdate,'yyyy-mm-dd day') from dual;
select '现在的时间是:'|| to_char(sysdate,'yyyy-mm-dd d') from dual;--1~7代表日~六

(12)按照指定格式把字符串解析为日期类型:to_date(字符串,格式),例:

select to_date('2019-1-1','yyyy-mm-dd')-sysdate from dual;--79.221712962963

(13)字符串转换为数字:to_number,例:

select to_number('$8000','$9999') from dual;--8000

24、通用函数:可以操作任何类型,主要针对于空值
(1)nvl(参数1,参数2):参数1如果为空,则返回参数2,返回参数1,例:

select nvl(1,2) from dual;--1
select nvl(null,2) from dual;--2

(2)nvl2(参数1,参数2,参数3):参数1如果不为空,返回参数2,否则返回参数3,例:

select nvl2(1,2,3) from dual;--2
select nvl2(null,2,3) from dual;--3

(3)nullif(参数1,参数2):两个参数相等,返回null,否则返回参数1,例:

select nullif(1,2) from dual;--1
select nullif(1,1) from dual;--2

(4)coalesce(参数1,参数2,……):返回第一个非空参数值,例:

select coalesce(1,2,3,4) from dual;--1
select coalesce(null,null,3,4) from dual;--3

你可能感兴趣的:(Oracle数据库学习心得(二))