欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库函数总结(Oracle篇)

程序员文章站 2023-10-11 19:30:08
一、字符函数——返回字符值 这些函数全都接收的是字符族类型的参数(chr 除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回varchar2类型的数值.字符函数的返...

一、字符函数——返回字符值

这些函数全都接收的是字符族类型的参数(chr 除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回varchar2类型的数值.字符函数的返回类型所受的限制和基本类型所受的限制是相同的,比如: varchar2数值被限制为2000字符(oracle 8中为4000字符),而char数值被限制为255字符(在oracle8中是2000).当在过程性语句中使用时,它们可以被赋值给varchar2 或者char类型的pl/sql变量.

chr

语法: chr(x)

功能:返回在数据库字符集中与x拥有等价数值的字符。chr和ascii是一对反函数。经过chr转换后的字符再经过ascii转换又得到了原来的字符。

concat

语法: concat(string1,string2)

功能:返回string1,并且在后面连接string2。

initcap

语法:initcap(string)

功能:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用.空格或给字母数字字符进行分隔。不是字母的字符不变动。

trim([leading|trailing|both] [删除指定字符串] form 被操作的字符串)

leading:删除前缀字符。

trailing:删除后缀字符。

both:删除前后字符。

功能:利用trim函数将去除字符串中指定的前缀或尾随的字符,默认删除空格。

ltrim

语法:ltrim(string1,string2)

功能:返回删除从左边算起出现在string2中的字符的string1。string2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当遇到不在string2中的第一个字符,结果就被返回了。ltrim的行为方式与rtrim很相似。

nls_initcap

语法:nls_initcap(string[,nlsparams])

功能:返回字符串每个单词第一个字母大写而单词中的其他字母小写的string,nlsparams

指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和initcap相同。nlsparams可以使用的形式是:

‘nls_sort=sort’

这里sort制订了一个语言排序序列。

nls_lower

语法:nls_lower(string[,nlsparams])

功能:返回字符串中的所有字母都是小写形式的string。不是字母的字符不变。

nlsparams参数的形式与用途和nls_initcap中的nlsparams参数是相同的。如果nlsparams没有被包含,那么nls_lower所作的处理和lower相同。

nls_upper

语法:nls_upper(string[,nlsparams])

功能:返回字符串中的所有字母都是大写的形式的string。不是字母的字符不变。nlsparams参数的形式与用途和nls_initcap中的相同。如果没有设定参数,则nls_upper功能和upper相同。

replace

语法:replace(string,search_str[,replace_str])

功能:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。replace是translate所提供的功能的一个子集。

rpad

语法:rpad(string1,x[,string2])

功能:返回在x 字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比x字符少,就按照需要进行复制。如果string2多于 x字符,则仅string1前面的x各字符被使用。如果没有指定string2,那么使用空格进行填充。x是使用显示长度可以比字符串的实际长度要长。 rpad的行为方式与lpad很相似,除了它是在右边而不是在左边进行填充。

rtrim

语法: rtrim(string1,[,string2])

功能: 返回删除从右边算起出现在string1中出现的字符string2. string2被缺省设置为单个的空格.数据库将扫描string1,从右边开始.当遇到不在string2中的第一个字符,结果就被返回了rtrim的行为方式与ltrim很相似.

soundex

语法: soundex(string)

功能: 返回string的声音表示形式.这对于比较两个拼写不同但是发音类似的单词而言很有帮助.

substr 截取子串 按字符截取。 substrb 按字节截取

语法: substr(string,a[,b])

功能: 返回从a位置开始的b个字符长的string的一个子字符串. 第一个字符的位置是1. 如果a是0,那么它就被认为从第一个字符开始.如果是正数,返回字符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回null.如果a或b使用了浮点数,那么该数值将在处理进行以前首先被却为一个整数.

translate

语法: translate(string,from_str,to_str)

功能: 返回将所出现的from_str 中的每个字符替换为to_str中的相应字符以后的string. translate是replace所提供的功能的一个超集.如果from_str比to_str长,那么在from_str中而不在to_str中而外的字符将从string中被删除,因为它们没有相应的替换字符. to_str不能为空.oracle把空字符串认为是null,并且如果translate中的任何参数为null,那么结果也是null.

upper

语法: upper(string)

功能: 返回大写的string.不是字母的字符不变.如果string是char数据类型的,那么结果也是char类型的.如果string是varchar2类型的,那么结果也是varchar2类型的.

f.2 字符函数——返回数字

这些函数接受字符参数回数字结果.参数可以是char或者是varchar2类型的.尽管实际下许多结果都是整数值,但是返回结果都是简单的number类型的,没有定义任何的精度或刻度范围.

ascii

语法: ascii(string)

功能: 数据库字符集返回string的第一个字节的十进制表示.请注意该函数仍然称作为ascii.尽管许多字符集不是7位ascii.chr和ascii是互为相反的函数.chr得到给定字符编码的响应字符. ascii得到给定字符的字符编码.

instr

语法: instr(string1, string2[a,b])

功能: 得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有找到,那么返回0.位置的计算是相对于string1的开始位置的,不管a和b的取值是多少.

instrb

语法: instrb(string1, string2[a,[b]])

功能: 和instr相同,只是操作的对参数字符使用的位置的是字节.

length

语法: length(string)

功能: 返回string的字节单位的长度.char数值是填充空格类型的,如果string由数据类型char,它的结尾的空格都被计算到字符串长度中间.如果string是null,返回结果是null,而不是0.

lengthb

语法: lengthb(string)

功能: 返回以字节为单位的string的长度.对于单字节字符集lengthb和length是一样的.

nlssort

语法: nlssort(string[,nlsparams])

功能: 得到用于排序string的字符串字节.所有的数值都被转换为字节字符串,这样在不同数据库之间就保持了一致性. nlsparams的作用和nls_initcap中的相同.如果忽略参数,会话使用缺省排序.

二、数值处理函数

函数接受number类型的参数并返回number类型的数值.超越函数和三角函数的返回值精确到36位.acos、asin、atan、atan2的结果精确到36位.

abs

语法: abs(x)

功能: 得到x的绝对值.

acos

语法: acos(x)

功能: 返回x的反余弦值. x应该从0到1之间的数,结果在0到pi之间,以弧度为单位.

asin

语法: asin(x)

功能: 计算x的反正弦值. x的范围应该是-1到1之间,返回的结果在-pi/2到pi/2之间,以弧度为单位.

atan

语法: atan(x)

功能: 计算x的反正切值.返回值在-pi/2到pi/2之间,单位是弧度.

atan2

语法: atan2(x,y)

功能: 计算x和y的反正切值.结果在负的pi/2到正的pi/2之间,单位是弧度.

ceil

语法: ceil(x)

功能: 计算大于或等于x的最小整数值.

cos

语法: cos(x)

功能: 返回x的余弦值. x的单位是弧度.

cosh

语法: cosh(x)

功能: 计算x的双曲余弦值.

exp

语法: exp(x)

功能: 计算e的x次幂. e为自然对数,约等于2.71828.

floor

语法: floor(x)

功能: 返回小于等于x的最大整数值.

ln

语法: ln(x)

功能: 返回x的自然对数. x必须是正数,并且大于0

log

语法: log(x)

功能: 计算以x为底的y的对数.底必须大于0而且不等于1, y为任意正数.

mod

语法: mod(x,y)

功能: 返回x除以y的余数.如果y是0,则返回x

power

语法: power(x,y)

功能: 计算x的y次幂.

round

语法: round(x[,y])

功能: 计算保留到小数点右边y位的x值. y缺省设置为0,这会将x保留为最接近的整数.如果y小于0,保留到小数点左边相应的位. y必须是整数.

sign

语法: sign(x)

功能: 获得x的符号位标志.如果x<0返回-1.如果x=0返回0.如果x>0返回1.

sin

语法:sin(x)

功能:计算x的正弦值. x是一个以弧度表示的角度.

sinh

语法:sinh(x)

功能:返回x的双曲正弦值.

sqrt

语法: sqrt(x)

功能: 返回x的平方根. x必须是正数.

tan

语法: tan(x)

功能: 计算x的正切值, x是一个以弧度位单位的角度.

tanh

语法: tanh(x)

功能: 计算x的双曲正切值.

trunc

语法: trunc(x[,y])

功能: 计算截尾到y位小数的x值. y缺省为0,结果变为一个整数值.如果y是一个负数,那么就截尾到小数点左边对应的位上.