Oracle 的基本函数介绍

Oracle 的函数分为基本函数和分析函数,

其中基本函数是最常用的,而分析函数的话,

传言是在数据仓库这类的东西中才会经常用到,

在这篇博文中,则只是介绍最常用的 Oracle 基本函数。

介绍呢,会依照下面的路线进行,

字符函数

数字函数

日期函数

转换函数

组函数

先是字符函数开始吧

1.  ASCII(c)

    其中 c 呢是一个字符串参数,这个函数的作用就是通过传递进去的字符串,

    然后返回这个字符串第一个字母的 ASCII 码值,

image

2. CHR(i)

    其中的 i 是一个数字,然后会返回一个用十进制表示的字符,也就是 ASCII(c)的逆函数

image

3. CONCAT(c1,c2)

    这个函数中有两个字符串参数,这个函数的功能就是将两个字符串拼接起来

image

4. INITCAP(c1)

    这个函数比较特殊,其拥有一个字符串参数 c1 ,

    它的功能是将字符串中的每个单词的第一个字母大写,而其他字母小写返回,

    其中单词又空格,控制字符,标点符号来限制

image

5. INSTR(c1,c2,i,j)

    这个函数呢,其中参数比较多,有四个,c1 和 c2 为字符串,而 i , j 则为数字,

    i 和 j 两个参数是可选的,也就是说可以没有这两个参数,这是因为这两个参数均有默认值,

    均为 1

    这个函数的功能为,返回 c2 在 c1 中第 j 次出现的位置,其实这也就是一个搜索过程,

    而搜索的起始位置则是由 i 确定的,i 确定从 c1 中第 i 个字符开始匹配

image

6. LENGTH(c)

    这个函数呢,功能就很明显了,就是返回传递进去的参数 c 这个字符串的长度

image

7. LOWER(c)

    这个函数的功能也是比较明显的,

    就是将传递进来的参数即一个字符串 c 全部转换为小写后返回

image

8. UPPER(c)

    这个函数的功能就是将 c 这个字符串中的字符全部大写后返回

image

9. LPAD(c1,i,c2)

    其中有三个参数,c1 和 c2 是字符串,而 i 则为数字,   

    如果 i 小于 c1 的长度,那么只返回 i 那么长的 c1 的字符,其他的将被截去,

    否则在 c1 的左侧使用 c2 字符串补足到长度 i ,可以多次重复,

    c2 的默认值为单空格。这个函数返回的字符串的长度一定是 i

image

10. RPAD(c1,i,c2)

    这个函数呢和上面的功能差不多,只不过上面的 LPAD 函数是从左到右补充,

    而这个 RPAD 则是从右到左进行补充,

    也就是当 i 的值小于 c1 的长度时,直接将 c1 进行截取然后返回长度为 i 的字符串,

    当 i 的值大于 c1 的长度时,便使用 c2 对 c1 从右到左进行补充

image

11. LTRIM(c1,c2)

    这个函数的功能是把 c1 最左边的字符去掉,使其第一个字符不在 c2 这个字符串中

    如果不能理解的,请注意比较下面的截图中的各个结果

image

12. RTRIM(c1,c2)

    这个函数也和上面的函数功能类似,只不过不是从左边开始比较了,而是从字符串 c1 的右边比较,

    使 c1 的最右边的字母不在 c2 这个字符串中

image

13. REPLACE(c1,c2,c3)

    这个函数的作用比较特殊,是使用 c3 来代替在 c1 中出现的 c2 ,然后将结果返回

image

14. SUBSTR(c1,i,j)  

    上面的参数中 c1 是字符串,i 和 j 是数字,而且 j 这个参数是可选的,即是可以没有的,

    从 c1 的第 i 位开始返回长度为 j 的截取后的字符串,如果 j 位空,则直到 c1 的尾部

    说白了你,就是 C# 中的 substring 函数

image

15. TRANSLATE(c1,c2,c3)

    这个函数的功能就是将 c1 和 c2 中相同的字符使用 c3 来代替,然后再返回结果

    这个函数呢,由于比较难以解释,所以还需按着下面的截图来说明,

    比如,BaoBeiMe 中的第一个字母和 Bei 中的第一个字母是相同的,

    故使用 Xza 中的第一个字母取代,

    而 BaoBeiMe 中的 Bei 和 Bei 中的三个字符全部匹配,所以必须使用 Xza 一起进行替代 Bei

image

16. TRIM(c1 from c2)

    该函数用户从字符串的头部,尾部和两端截断特定的字符,

    c1 为要截取的字符,c2 为源字符串

image 

 

 

再是数字函数

这里说到数学函数呢,说实在的,和 C# 里的 Math 下的数学函数差不多了,

需要注意的就是在 Oracle 中所有的三角函数的参数和值都是弧度而非角度。

1. ABS(n)

    这个函数见多了的,就是求 n 的绝对值

image

2. CEIL(n)

    返回 >= n 的最小整数

image

3. FLOOR(n)

    返回 <= n 的最大整数

image

4. SIN(n)

   返回弧度为 n 的正弦值

image

5. COS(n)

    返回弧度为 n 的余弦值

image

6. TAN(n)

    返回弧度为 n 的正切值

image

7. EXP(n)

    返回 e 的 n 次幂值即 e^n

image

8. POWER(n1,n2)

    返回 n1 的 n2 次方,即 n1^n2

image

9. MOD(n1,n2)

   返回 n1 除以 n2 的余数,即 n1%n2

image

10 . LN(n)

    返回 n 的自然对数

image

11. LOG(n1,n2)

    返回以 n1 为底的 n2 的对数

image

12. SQRT(n)

    返回 n 的平方根

image

13. TRUNC(n1,n2)

    返回截尾到 n2 位小数的 n1 的值,n2 的默认值为 0,

    当 n2 为默认值设置时,会将 n1 截尾为整数,如果 n2 为负数,

    就截尾在小数点左边的相应的位上。

image

14. ROUND(n1,n2)

    返回四舍五入小数点右边 n2 位的 n1 的值,n2 的默认值为 0

image

15. SIGN(n)

    n < 0 则返回 –1

    n > 0 则返回 1

    n = 0 则返回 0

image

 

 

再是日期函数

既然是日期函数的话,那么肯定操作的就是日期类型的数据了,

1. SYSDATE

    这个函数呢,比较特殊,没有参数,所以也不需要加什么括号之类的了,

    直接裸用就 OK 了,这个函数的作用就是返回当前的时间和日期

image

2. ADD_MONTHS(d,i)

    返回日期 d 加上 i 个月后的结果, i 可以是任意整数。

image

3. LAST_DAY(d)

    返回日期 d 所在月份的最后一天

image

4. MONTHS_BETWEEN(d1,d2)

    返回日期 d1 和 日期 d2 之间月的数目

image 

5. TRUNC(d,format)

    返回由 format 指定的单位的日期 d

    比如您可以指定 format 为 y ,则表明是返回指定日期所在的年(以年为单位)

    如果指定 format 为 mm ,则表明是返回指定日期所在的月(以月为单位)

    如果指定 format 为 d ,则表明是返回指定日期所在的天(以天为单位)

image

再是转换函数

转换函数,用于在多种数据类型之间转换

1. ROWIDTOCHAR(rowid)

    这个函数的功能就是将类型为 ROWID 的参数 rowid 转换为字符串类型

image

2. CHARTOROWID(c)   

    这个函数呢,和上面的 ROWIDTOCHAR 的功能相反,是将字符串 c 转换为 ROWID 数据类型

image

3. TO_CHAR(x,format)

    这个函数的功能就是将一个参数 x 转换为字符串类型,

    其中 x 可以是 number 或者 date 类型

image

4. TO_DATE(c,format)

    将字符串转换为 Date 数据类型

image

5. TO_NUMBER(c)

    将一个字符串参数转换为 number 数据类型

image

再是组合函数

这个呢就比较常用了,就是 COUNT() 啊,AVG()啊,MAX(),MIN()这些了

这些就不多做介绍了

 

posted @ 2010-04-09 11:08  小宝马的爸爸  阅读(2546)  评论(6编辑  收藏  举报