Oracle中常用的函数与表达式.ppt
《Oracle中常用的函数与表达式.ppt》由会员分享,可在线阅读,更多相关《Oracle中常用的函数与表达式.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1414章章 OracleOracle中的函数与表达式中的函数与表达式Oracle中提供了大量的内置函数,以处理各种形式的中提供了大量的内置函数,以处理各种形式的运算。这些函数涵盖了字符串运算、数值运算、日期运算等运算。这些函数涵盖了字符串运算、数值运算、日期运算等方面。同样,方面。同样,Oracle允许使用数值运算、逻辑运算等基本的允许使用数值运算、逻辑运算等基本的表达式运算,另外,提供了表达式运算,另外,提供了SQL标准所规定的特殊判式。标准所规定的特殊判式。lOracle中的字符串函数;中的字符串函数;lOracle中的数学函数;中的数学函数;lOracle中的日期函数;中的日期函数
2、;第第1414章章 OracleOracle中的函数与表达式中的函数与表达式lOracle中的聚合函数;中的聚合函数;lOracle中的运算表达式;中的运算表达式;lOracle中的特殊判式;中的特殊判式;lOracle中的高级函数中的高级函数分析函数与窗口函数。分析函数与窗口函数。14.1 Oracle14.1 Oracle中的字符串函数中的字符串函数Oracle提供了丰富的字符串函数,本小节将通过实例提供了丰富的字符串函数,本小节将通过实例讲述讲述Oracle中各字符串函数的使用。中各字符串函数的使用。14.1.1 lpad()14.1.1 lpad()函数函数lpad()函数用于左补全字
3、符串。在某些情况下,预期的函数用于左补全字符串。在某些情况下,预期的字符串为固定长度,而且格式统一,此时可以考虑使用字符串为固定长度,而且格式统一,此时可以考虑使用lpad()函数。例如,深市股票代码都以函数。例如,深市股票代码都以0开头,并且都为开头,并且都为6位,可位,可以利用以利用lpad格式化股票代码,以保证股票代码的格式。格式化股票代码,以保证股票代码的格式。select lpad(21,6,0)stock_code from dual;需要注意的是,当原字符串的长度大于预期长度时,实需要注意的是,当原字符串的长度大于预期长度时,实际进行的是截取字符串操作。际进行的是截取字符串操作。
4、select lpad(1234567,6,0)stock_code from dual;14.1.2 rpad()14.1.2 rpad()函数函数与与lpad()函数相反,函数相反,rpad()函数从右端补齐字符串。函数从右端补齐字符串。select rpad(abc,10,*)from dual;注意与说明:注意与说明:lpad()和和rpad()都用于填充字符串,都用于填充字符串,lpad()从左端进行填充,而从左端进行填充,而rpad()从右端进行填充,但是,二者从右端进行填充,但是,二者在最终截取字符串时,都是从左端开始截取。在最终截取字符串时,都是从左端开始截取。select r
5、pad(abcdefg,6,*)from dual;14.1.3 lower()14.1.3 lower()函数函数返回小写字符串返回小写字符串lower()函数用于返回字符串的小写形式。函数用于返回字符串的小写形式。lower()函数函数在查询语句中经常扮演重要角色。例如,对于用户名和密码在查询语句中经常扮演重要角色。例如,对于用户名和密码的校验来说,用户名一般并不区分大小写,用户无论输入了的校验来说,用户名一般并不区分大小写,用户无论输入了大写还是小写形式,都被认为是合法用户。因此,在数据库大写还是小写形式,都被认为是合法用户。因此,在数据库查询时,应该将数据库中用户名与用户输入的用户名进
6、行统查询时,应该将数据库中用户名与用户输入的用户名进行统一。一。select user_id,user_name from t_users where lower(user_name)=lower(Alex);14.1.4 upper()14.1.4 upper()函数函数返回大写字符串返回大写字符串upper()函数用于返回字符串的大写形式。与函数用于返回字符串的大写形式。与lower()函函数类似,数类似,upper()函数也可以用在查询语句中,以统一数据函数也可以用在查询语句中,以统一数据库和查询条件的一致性。库和查询条件的一致性。select user_id,user_name fro
7、m t_users where upper(user_name)=upper(ALEX);注意与说明:注意与说明:upper()函数和函数和lower()函数只针对英文字函数只针对英文字符其作用,因为只有英文字符才有大小写之分。符其作用,因为只有英文字符才有大小写之分。14.1.5 initcap()14.1.5 initcap()函数函数单词首字母大写单词首字母大写initcap()函数将单词的首字母大写。函数将单词的首字母大写。select initcap(big)from dual;需要注意的是,需要注意的是,initcap()函数不能自动识别单词函数不能自动识别单词 select in
8、itcap(bigbigtiger)from dual;initcap()函数会将参数中的非单词字符作为单词分隔符函数会将参数中的非单词字符作为单词分隔符select initcap(big_big_tiger)from dual;select initcap(big/big/tiger)from dual;select initcap(big big tiger)from dual;14.1.6 length()14.1.6 length()函数函数返回字符串长度返回字符串长度length()函数用于返回字符串的长度。函数用于返回字符串的长度。select length(abcd )from
9、 dual;空字符串的长度不是空字符串的长度不是0,而是,而是null。因为空字符串被视。因为空字符串被视作作null,所以,所以,length(null)返回的仍然是返回的仍然是null。select length()from dual;对其其他数据类型,照样可以通过对其其他数据类型,照样可以通过length()函数来获得函数来获得其长度。其长度。length()函数会首先将参数转换为字符串,然后计函数会首先将参数转换为字符串,然后计算其长度。算其长度。select length(12.51)from dual;14.1.7 substr()14.1.7 substr()函数函数截取字符串截
10、取字符串substr()函数用于截取字符串。该函数可以指定截取的函数用于截取字符串。该函数可以指定截取的起始位置,截取长度,可以实现灵活的截取操作,因此,成起始位置,截取长度,可以实现灵活的截取操作,因此,成为字符串操作中最常用的函数之一。为字符串操作中最常用的函数之一。例如,对于字符串例如,对于字符串“1234567890”,现欲截取自第,现欲截取自第5位位开始的开始的4个字符。个字符。select substr(1234567890,5,4)from dual;需要注意的是,需要注意的是,Oracle中字符位置从中字符位置从1开始,而不是像开始,而不是像某些编程语言(如某些编程语言(如Ja
11、va)那样从)那样从0开始。开始。如果不指定长度,那么如果不指定长度,那么substr()函数将获取起始位置参函数将获取起始位置参数至字符串结尾处的所有字符。数至字符串结尾处的所有字符。select substr(1234567890,5)from dual;14.1.8 instr()14.1.8 instr()函数函数获得字符串出现的位获得字符串出现的位置置instr()函数用于获得子字符串在父字符串中出现的位置。函数用于获得子字符串在父字符串中出现的位置。select instr(big big tiger,big)from dual;可以指定额外的参数,以命令该函数从指定位置开始搜可以
12、指定额外的参数,以命令该函数从指定位置开始搜索。索。select instr(big big tiger,big,2)from dual;还可以指定出现次数参数,以指定是第几次搜索到子字还可以指定出现次数参数,以指定是第几次搜索到子字符串。符串。select instr(big big tiger,big,2,2)from dual;14.1.9 ltrim()14.1.9 ltrim()函数函数删除字符串首部空格删除字符串首部空格ltrim()中的中的l代表代表left。该函数用于删除字符串左端的空。该函数用于删除字符串左端的空白符。白符。select ltrim(abc)from dual
13、;需要注意的是,空白符不仅仅包括了空格符,还包括需要注意的是,空白符不仅仅包括了空格符,还包括TAB键、回车符和换行符。键、回车符和换行符。14.1.10 rtrim()14.1.10 rtrim()函数函数删除字符串尾部空删除字符串尾部空格格rtrim()中的中的r代表代表right。该函数用于删除字符串右端空。该函数用于删除字符串右端空白符。删除字符串首尾空白符可以结合使用白符。删除字符串首尾空白符可以结合使用ltrm()和和rtrim()函数。函数。select rtrim(ltrim(abc )from dual;14.1.11 trim()14.1.11 trim()函数函数删除字符
14、串首尾空格删除字符串首尾空格trim()函数可用于删除首尾空格,相当于函数可用于删除首尾空格,相当于ltrim()和和rtrim()的组合。的组合。select trim(abc )from dual;14.1.12 to_char()14.1.12 to_char()函数函数将其他类型转换将其他类型转换为字符类型为字符类型to_char()函数用于将其他数据类型的数据转换为字符函数用于将其他数据类型的数据转换为字符型,这些类型主要包括数值型、日期型。型,这些类型主要包括数值型、日期型。1.将数值型转换为字符串将数值型转换为字符串select to_char(120,99999)result
15、from dual;select to_char(0.96,9.99)result from dual;select to_char(0.96,0.00)result from dual;select to_char(5897.098,999,999,999.000)result from dual;select to_char(5987.098,$999,999,999.000)result from dual;2.将日期型转换为字符串将日期型转换为字符串select to_char(sysdate,yyyy-mm-dd)result from dual;select to_char(sys
16、date,YYYY-MON-DD)from dual;14.1.13 chr()14.1.13 chr()函数函数将将asciiascii码转换为字符码转换为字符串串chr()函数用于将函数用于将ascii码转换为字符串。通过码转换为字符串。通过chr()函数,函数,可以对不宜直接输入的字符进行操作。例如,将回车换行符可以对不宜直接输入的字符进行操作。例如,将回车换行符插入到数据中。插入到数据中。insert into test_data values(6,周林周林|chr(13)|chr(10)|梁军梁军,20);select*from test_data where id=6;14.1.1
17、4 translate()14.1.14 translate()函数函数替换字符替换字符translate()函数用于替换字符串。替换的规则类似于翻函数用于替换字符串。替换的规则类似于翻译的过程。译的过程。select translate(56338,1234567890,avlihemoqr)result from dual;需要注意的是,当字符不能被成功需要注意的是,当字符不能被成功“翻译翻译”,那么,那么,Oracle将使用空字符替换它。利用此特性,可以使用将使用空字符替换它。利用此特性,可以使用translate()函数来删除一个含有数字和英文字母的字符串中的所有字函数来删除一个含有数
18、字和英文字母的字符串中的所有字母:母:select translate(21343yuioioizf899dasiwpe58595oda0j098,#abcdefghijklmnopqrstuvwxyz,)reulst from dual;14.2 Oracle14.2 Oracle中的数学函数中的数学函数Oracle提供的数学函数可以处理日常使用到的大多数提供的数学函数可以处理日常使用到的大多数数学运算。本小节将讲述数学运算。本小节将讲述Oracle中常用的几种数学函数。中常用的几种数学函数。14.2.1 abs()14.2.1 abs()函数函数返回数字的绝对值返回数字的绝对值abs()函
19、数的参数只能是数值型,该参数用于返回参数函数的参数只能是数值型,该参数用于返回参数的绝对值。的绝对值。select abs(-2.1)from dual;14.2.2 round()14.2.2 round()函数函数返回数字的返回数字的“四舍四舍五入五入”值值round()函数用于返回某个数字的四舍五入值。为了使函数用于返回某个数字的四舍五入值。为了使用该函数,除了提供原始值之外,还应提供精确到的位数。用该函数,除了提供原始值之外,还应提供精确到的位数。精确位数可以为正整数、精确位数可以为正整数、0和负整数。和负整数。select round(2745.173,2)result from d
20、ual;如果不使用第二个参数,那么,相当于使用了参数如果不使用第二个参数,那么,相当于使用了参数0,即精确到整数。即精确到整数。select round(2745.173)result from dual;如果第二个参数为负数,那么,相当于将数值精确到小如果第二个参数为负数,那么,相当于将数值精确到小数点之前的位数。数点之前的位数。select round(2745,-1)result from dual;14.2.3 ceil()14.2.3 ceil()函数函数向上取整向上取整ceil()函数只能有一个参数。该函数将参数向上取整,函数只能有一个参数。该函数将参数向上取整,以获得大于等于该参
21、数的最小整数。以获得大于等于该参数的最小整数。select ceil(21.897)result from dual;需要注意的是该函数针对负数的运算:需要注意的是该函数针对负数的运算:select ceil(-21.897)result from dual;因为因为ceil()函数返回的是大于等于参数的最小整数,所函数返回的是大于等于参数的最小整数,所以,该函数返回的并非以,该函数返回的并非-22,而是,而是-21。14.2.4 floor()14.2.4 floor()函数函数向下取整向下取整与与ceil函数相反,函数相反,floor()函数用于返回小于等于某个数函数用于返回小于等于某个数
22、值的最大整数。值的最大整数。select floor(21.897)result from dual;select floor(-21.897)result from dual;14.2.5 mod()14.2.5 mod()函数函数取模操作取模操作mod()函数有两个参数,第一个参数为被除数,第二个函数有两个参数,第一个参数为被除数,第二个参数为除数。参数为除数。mod()函数的实际功能为获得两数相除之后的函数的实际功能为获得两数相除之后的余数。余数。select mod(5,2)result from dual;14.2.6 sign()14.2.6 sign()函数函数返回数字的正负性返
23、回数字的正负性sign()函数只有一个参数。该函数将返回参数的正负性。函数只有一个参数。该函数将返回参数的正负性。若返回值为若返回值为1,表示该参数大于,表示该参数大于0;若返回值为;若返回值为-1,表示该参,表示该参数小于数小于0;若返回值为;若返回值为0,表示该参数等于,表示该参数等于0。select sign(8)result from dual;select sign(-8)result from dual;select sign(0)result from dual;sign()函数为判断两个数值的大小关系提供了方便。因函数为判断两个数值的大小关系提供了方便。因为在为在oracle中
24、,利用类似中,利用类似if else的结构来判断两个数值之间的结构来判断两个数值之间的大小关系,并不像编程语言中那样方便,而且极易造成代的大小关系,并不像编程语言中那样方便,而且极易造成代码的复杂化。码的复杂化。14.2.7 sqrt()14.2.7 sqrt()函数函数返回数字的平方根返回数字的平方根sqrt()函数也只有一个参数。该函数用于返回参数的平函数也只有一个参数。该函数用于返回参数的平方根。可以利用方根。可以利用round()函数和函数和sqrt()函数返回某个数值的近函数返回某个数值的近似平方根。似平方根。select round(sqrt(2),3)result from du
25、al;14.2.8 power()14.2.8 power()函数函数乘方运算乘方运算power()函数有两个参数。该函数用于实现数值的乘方函数有两个参数。该函数用于实现数值的乘方运算。运算。select power(6,2)result from dual;14.2.9 trunc()14.2.9 trunc()函数函数截取数字截取数字trunc()函数用于截取部分数字。其工作机制非常类似函数用于截取部分数字。其工作机制非常类似于于round()函数。与函数。与round()函数不同的是,该函数不对数值函数不同的是,该函数不对数值做四舍五入处理,而是直接截取。做四舍五入处理,而是直接截取。s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 常用 函数 表达式
限制150内