一、概念
按不同得功能用途而封装好得程序,不必花费大量得心思编写相应得程序,直接使用即可。
函数由函数名,参数组成
函数定义上分为:系统函数,自定义函数
二、系统函数
1.字符型函数
2.日期函数
3.转换函数
4.数值函数
5.其他函数
字符型函数
1.concat()连接函数、||
concat(String1,String2):将String和String拼接在一起,一次只能包含两个函数;
示例:
字段和字段拼接
select concat(ename,sal) from emp
注意:
1)concat在使用时含有两个函数,若拼接多个数据需要嵌套函数。
2)拼接表中得列时,不需要加引号声明
2.大写/小写转换函数
lower(String1)/upper(String2) 将括号内的字符转换成小写/大写
initcap(String) 将字符串中的每个单词改成首字母大写,其他字母小写的形式
示例:
小写:select lower(ename) from emp
大写:select upper (ename) from emp
首字母大写:select initcap(ename) from emp
注意:
1)该函数含有一个参数
2)首字母大写其他字母小写
3.求字符长度
字符集与字符的关系
utf-8:一个汉字占用三个字节
ZHS16GBK:一个汉字占用两个字节
WE8ISO88S9PI:一个汉字占用一个字节—罕见
关键字:
lencth(String) 求取字符串String的长度
lengthb(String): 求字符串的字节长度
示例:
字符长度
select length(“AMIN”)from emp
字节长度
select lengthb(“猴哥”)form emp
4.替换函数
replace(String,s1,s2)
String :要处理的字符串
s1 :被替换的字符
s2 :替换的字符
------将Sring中的s1替换成s2
A.参数个数
将’ASDFGH‘中的DE替换为JI
select replace(’ASDFGH‘,'DE',’JI‘) from dual;
---replace()函数最少有两个参数,至多三个函数
B.多个字符替换
将'ASDASDASDE'中的ASD替换为'团灭'
SELECT REPLACE('ASDASDASDE','ASD','团灭') FROM DUAL;
----替换时从字符串得左侧开始找相同的字符,将多个字符看成一个整体 替换
5.去除函数
ltrim(String,s):
去除字符串String中左侧的S,如果S省略,则默认去除空格
rtrim(String,S):
去除字符串String 中右侧的S,如果S省略,则默认去除空格
trim(Leading/trailing/both ,s from String) :
去除字符串String中的S,具体去除左侧/右侧//两侧根据参数leading/triling/both 决定,若省略该参数,默认去除两侧;
参数【S from】决定了被去除的内容,若省略则默认去除空格
示例:
1).去除' ASD ASD ' 两侧的空格
SELECT TRIM(' ASD ASD ') FROM DUAL;
-------A.参数情况
--包含一个参数
SELECT RTRIM(' ASD ASD ') FROM DUAL;
–两个参数
将'ASDASDEF'中左侧的A去除
SELECT RTRIM(' ASD ASD ','A') FROM DUAL;
--函数最少一个参数,用于去除空格;最多两个参数,用于去除两侧字符串
-------B.去除字符
–单个字符
SELECT LTRIM('ASDASDEF','A') FROM DUAL;
------ 单个字符在TRIM时,会从字符串左侧、右侧、两侧查找要去除的字符,去除,直到找到第一个不等于第二个参数的字符
将字符 ‘ASD ASD ASD’中左侧的ASD去除
SELECT LTRIM('ASD ASD ASD','ASD') FROM DUAL;
–多个字符去除时,将要去除的字符看做为一个集合,从左、右、两侧开始去除字符,直到找到第一个非集合内的字符为止
6.填充函数
lpad(String,N,String1)/rpad(String,N,String1)
String:要处理的字符串
String1:要填充的字符/字符串
N:填充以达到N长度
–在String左/右侧添加字符String1使长度达到N
A.参数情况
1)参数个数
--在‘asdasd’的左侧、右侧添加1,使长度达到8
SELECT LPAD('ASDASD',8,1) FROM DUAL;
–函数 最少两个参数 至多三个参数
2).N的大小
--N>LENGTH(STR)
SELECT LPAD('ASDASD',8,1) FROM DUAL;
--0<N<LENGTH(STR)
SELECT LPAD('ASDASD',4,1) FROM DUAL;--不填充,只截取出该长度的字符串
--N<=0
SELECT LPAD('ASDASD',-1,1) FROM DUAL;--结果为空
7.截取函数
Substr(String,ind,len)
String:要处理的字符串
ind:开始截取字符的位置
len:截取字符的长度
–从字符串String的ind位置,截取len长度的字符串并返回该截取内容,返回的使字符串
示例:
1).参数个数
--从字符串‘ASDEFGHTING’的第5个位置截取长度为2的字符
SELECT SUBSTR('ASDEFGHTING',5,2) FROM DUAL;
--函数最少两个至多三个
8.获取字符的位置
instr(String,String1,ind,N)
String:要处理的字符串
String1:要查找的字符
ind:查找字符开始的位置
N:查找字符第几次出现
—从ind位置开始查找String中String1第N次出现的位置,返回的是个数值,(数值=从左到右该字符得到位置)
示例:
--查找‘ASDEFGH’中H的位置
SELECT INSTR('ASDEHFGH','H',1,2) FROM DUAL;
–函数至少两个参数,至多4个参数