栏目分类
热点资讯
Propy中文网
你的位置:MainnetZ中文网 > Propy中文网 >
Oracle常用函数超详细整理
发布日期:2025-01-04 11:05 点击次数:116
前言
Oracle是一种关系型数据库管理系统,它提供了许多内置函数,以便用户可以更轻松地处理数据。
1. 字符串函数
(1)lengthb/length
计算字符串长度
lengthb求得是字节(Byte,1Byte=8bit)长度length求得是字符长度
ZHS16GBK下,lengthb(‘中’)为2字节,length(‘中’)为1(个字符),即一个字符占两个字节
数据库中存储的CHAR(19) 表示占19个字节。
(2)SUBSTR
SUBSTR用于截取字符串的子串,需要注意的是Oracle 数据库中字符串的下标是从 1 开始而不是从 0 开始的。该函数的语法如下:
string是要截取的字符串start是要开始截取的位置length是要截取的子串长度(可选)
e.g.
输出
abc
输出
abc
输出
bcd
输出
efg
(3)INSTR
INSTR 在字符串中搜索指定字符,返回发现指定字符的位置。该函数的语法如下:
string是要搜索的字符串substring是要查找的子start_position是要开始搜索的位置(可选)occurrence是要查找的子串出现的次数(可选)
e.g.
输出
10
(4)CONCAT
CONCAT连接两个字符串
e.g.
输出
Hello World!
按要求更新指定列:
(5)REPLACE
REPLACE用于替换字符串的指定子串。该函数的语法如下:
string是要替换子串的字符串substring1是要被替换的子串substring2是用来替换substring1的字符串(可选)
e.g.
输出:
“Goodbye World!”
(6)TRIM, LTRIM, RTRIM
TRIM:去除字符串的空格或指定字符
语法如下:
leading|trailing|both:可选参数,用于指定去除字符串的空格或指定字符是在字符串的前面、后面还是两边,默认为 both。trim_character:可选参数,用于指定要去除的字符,默认为字符串中的空格。string:必需参数,要去除空格或指定字符的字符串。
LTRIM :去除字符串左侧的空格或指定字符。
语法如下:
trim_character:可选参数,用于指定要去除的字符,默认为字符串中的空格。string:必需参数,要去除空格或指定字符的字符串。
e.g.
输出
test ltrim
RTRIM :去除字符串右侧的空格或指定字符。
语法如下:
trim_character:可选参数,用于指定要去除的字符,默认为字符串中的空格。string:必需参数,要去除空格或指定字符的字符串。
(7)ASCII
ASCII返回给定字符串中第一个字符的ASCII代码值。
e.g.
输出
65
(8)NVL
如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。
例如,以下查询将返回一个包含员工的职务和部门名称的结果,如果员工所在的部门为空,则返回“Unknown Department”:
(9)INITCAP,LOWER,UPPER
INITCAP 将字符串第一个字母变为大写LOWER 将字符串所有字母小写UPPER 将字符串所有字母大写
2. 数学函数
(1) ROUND
ROUND函数用于将数字四舍五入到指定的小数位数。例如将数字3.1415926四舍五入到两个小数位:
输出
3.14
(2)TRUNC
TRUNC函数用于将数字截断为指定的小数位数。例如将数字3.1415926截断为两个小数位:
输出
3.14
(3)ABS
ABS函数用于计算数字的绝对值。例如计算数字-10的绝对值:
输出
10
(4)POWER
POWER函数用于计算数字的幂。例如计算2的3次方:
输出
8
(5)MOD
MOD取模运算,返回两个数相除的余数。
e.g.
输出
1
(6)其他
CEIL: 返回比输入值大的最小整数。FLOOR: 返回比输入值小的最大整数。MOD: 返回两个数值相除的余数。
3. 日期函数
(1)CURRENT_DATE
CURRENT_DATE是一个SQL标准函数,返回当前日期(不带时间),可以在SELECT语句中使用。例如:
返回当前日期,格式为YYYY-MM-DD。
(2)SYSDATE
SYSDATE是Oracle的系统函数,返回当前日期和时间(数据库服务器所在时区的日期和时间,而不是客户端的时区),包括日期和精确到秒的时间。例如,获取当前日期和时间:
返回当前日期和时间,格式为YYYY-MM-DD HH:MI:SS。
(2)ADD_MONTHS函数
ADD_MONTHS函数用于在日期上添加指定的月数。例如,在当前日期上添加3个月:
(3)MONTHS_BETWEEN函数
MONTHS_BETWEEN函数用于计算两个日期之间的月数。例如,计算两个日期之间的月数:
输出
12
(4)TO_CHAR/TO_DATE
TO_CHAR函数可以将日期型数据转换为字符串TO_DATE函数则可以将字符串型数据转换为日期型数据
e.g.
4. 聚合函数
聚合函数用于对数据进行聚合计算,如求和、平均数、最大值、最小值等,聚焦函数不能作为条件用在where子句中,需要与having,group一起使用
(1)COUNT
COUNT函数用来计算某个表或某个查询语句返回的结果集中的行数。如果指定了DISTINCT关键字,则将去除重复的行计入计数。
例如,查询含员工总数:
(2)SUM
SUM函数用来计算某个表或某个查询语句返回的结果集中某个列的数值之和。
例如,查询员工月薪总和:
(3)AVG
AVG函数用来计算某个表或某个查询语句返回的结果集中某个列的数值平均值,其语法如下:
例如,查询员工平均月薪:
(4)MAX/MIN
MAX/MIN分别用来计算某个表或某个查询语句返回的结果集中某个列的数值最大值或最小值。
例如,查询含员工最高月薪:
5. 其他
(1)DECODE
DECODE:函数用来根据不同的条件返回不同的值,其语法如下:
当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。可以给出多个if/then 配对。
例如,员工信息表中有出生年份和州名,需要统计不同年份、不同大洲的人数。
即形成如下形式的统计表:
(2)CASE
CASE根据指定的条件返回不同的值。该函数与DECODE功能类似,但它更加灵活,可以嵌套使用,其语法如下:
expression是要比较的值value1、value2等是要比较的条件result1、result2等是对应的返回值(如果expression与某个value相等,则返回相对应的result)default是一个可选项,表示当expression与所有value都不相等时要返回的默认值。
例如实现前述功能的SQL语句如下:
(3)ROLLUP/CUBE
ROLLUP是GROUP BY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。CUBE也是GROUP BY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。
例如形成如下形式的统计表:
(4)MD5
DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,该函数只能直接在程序包中调用,不能直接应用于SELECT语句。
DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW类型,要正确显示,需要经过Utl_Raw.Cast_To_Raw转换:
(5)CAST
CAST函数用于将一个数据类型转换为另一种数据类型。
将一个字符串转换为数值型数据:
将一个日期字符串转换为日期类型:
(6)查询Blob/Clob类型字段
DBMS_LOB是Oracle数据库提供的一个用于操作大型对象(LOB)数据的包。其中,LOB包括四种类型:CLOB、NCLOB、BLOB和BFILE。
DBMS_LOB包提供了一系列子程序,可以用于读取、写入、截断、复制、比较等LOB对象的操作:
DBMS_LOB.READ:用于从LOB对象中读取数据;DBMS_LOB.WRITE:用于向LOB对象中写入数据;DBMS_LOB.TRIM:用于截断LOB对象中的数据;DBMS_LOB.COPY:用于将LOB对象中的数据复制到另一个LOB对象中;DBMS_LOB.COMPARE:用于比较两个LOB对象中的数据是否相同。
DBMS_LOB包有多个内置函数:
dbms_lob.append:追加LOB值dbms_lob.substr:截取LOB值dbms_lob.instr:查找LOB值中的字符串位置dbms_lob.getlength:查询Blob/Clob类型字段的长度
e.g.
总结
到此这篇关于Oracle常用函数超详细整理的文章就介绍到这了,更多相关Oracle常用函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!