您的位置:首页 > 数据库 > Oracle

Oracle常用系统函数

2018-03-05 14:16 190 查看
 1、字符类函数
                 字符类函数:专用于字符处理函数,处理的对象可以是
                 字符或字符串常量,也可以是字符类型的列。               
                  注:daul表是Oracle系统内部提供的一个用于实现临时数
             据计算的特殊表,其只有一个列DUMMY,类型为VARCHAR2(1);    
                  (1)ASCII(c)函数和CHR(i)函数
                        参数c:表示一个字符
                        参数i:表示一个数字
                        ASCII(c)函数:用于返回一个字符的ASCII码;
                        CHR(i)函数:用于返回ASCII码对应的字符;
 范例:



  
     (2)CONCAT(s1,s2)函数
             参数s1,s2:表示字符串(可为空)
      (3)INITCAP(s)函数
            该函数将字符串s的第一个字母大写,其它字母小写。单词之间用空格、控制字符、标点符号来区分。
       (4)INSTR(s1,s2[,i][,j])函数
            该函数用于返回字符s2在字符串s1中第j次出现的位置,搜索从字符串s1的第i个字符开始,若没有发现要查找的字符,函数返回值为0。
       (5)LENGTH(s)函数
            该函数用于返回字符串s的长度,若s为null,则返回值为null.
       (6)LOWER(s)函数与UPPER(s)函数
            LOWER(s)函数和UPPER(s)函数分别用于返回字符串s的小写形式和大写形式。
       (7) LTRIM(s1,s2)函数、RTRIM(s1,s2)函数和TRIM(s1,s2)函数;
            此三个函数分别用来删除字符串s1左边的字符串s2、用来删除字符串s1右边 的字符串s2、用来删除字符串s1左右两端边的字符串s2,若这3个函数中不能指定字符串s2,则表示去除相应的空格。

 范例:





        (8) REPLACE(s1,s2,[s3])函数
         该函数使用s3字符串替换出现在s1字符串中的所有s2字符串,并返回替换
         后的新字符串。其中,s3默认为空字符串。
       范例:



   (9) SUBSTR(s,i,[j])函数
            该函数表示从字符串s的第i个字符串开始截取长度为j的子字符串。
   范例:



 2、数字类函数
        数字函数主要用来执行各种数据计算,所有的数字函数都有数字参数并返回数字值。
        数字函数及其说明
        ABS(x)          返回x的绝对值
 [sql]
 SELECT ABS(3), ABS(-1) FROM DUAL;  
        BITAND(x,y)     返回对x,y进行位与(AND)操作的结果
[sql]
SELECT BITAND(1,0), BITAND(0,1), BITAND(0,0), BITAND(1,1), BITAND(1100, 1010) FROM DUAL;  
         CEIL(x)         返回大于或等于x的最小整数(注意负数)
         FLOOR(x)        返回小于或等于x的最大整数
[sql]
SELECT CEIL(5.6), CEIL(-5.6) FROM DUAL;  
SELECT FLOOR(5.6), FLOOR(-5.6) FROM DUAL;  
        EXP(x)          返回e的x次幂,其中e约为2.71828183
        LN(x)           返回x的自然对数
[sql]
SELECT EXP(2), EXP(1), EXP(2.3) FROM DUAL;  
SELECT LN(EXP(2)), LN(2.71828183) FROM DUAL;   
        LOG(x,y)        返回以x为底y的对数
        POWER(x,y)      返回x的y次幂
SQRT(x)         返回x的平方根
[sql]
SELECT LOG(10,100), POWER(3,3), SQRT(4) FROM DUAL;  
        MOD(x,y)        返回x除以y的余数
[sql]
SELECT MOD(2.31, 1.1) FROM DUAL;  
        SIGN(x)         返回x的符号
[sql]
SELECT SIGN(5), SIGN(-5), SIGN(0) FROM DUAL;  
        ROUND(x[,y])    返回对x取整的结果。y为可选参数,说明对第几位小数处取整。没有指定y的时候,则对x的0位小数取整vkjsy是负数,则对x在小数点的左边的第|y|位取整。此函数是四舍五入取整
         TRUNC(x[,y])    与ROUND类似,之不过是直接舍去尾数
[sql]
SELECT ROUND(1234.5678), ROUND(1234.5678, 2), ROUND(1234.5678, -2) FROM DUAL;  
SELECT TRUNC(1234.5678), TRUNC(1234.5678, 2), TRUNC(1234.5678, -2) FROM DUAL;
范例:



3、日期函数和时间类函数
此函数可以实现计算需要的特定日期和时间日期函数和时间类函数表 
函数说    明
add_months(d,i)
返回日期d加上i个月之后的结果。其中,i为任意数
last_day(d)
返回包含日期d月份的最后一天
months_betweend(d1,d2)
返回d1和d2之间的数目,若d1和d2的日期都相同,或者都
是该月最后一天,则返回一个整数,否则返回的结果将包含一个小数
new_time(d1,t1,t2)
d1是一个日期数据类型,当时区t1中的日期和时间是d1时,返回时区t2中的日期和时间,t1和t2是字符串
sysdate()
或systimestamp
返回系统当前时间
范例:



注: to_date()把字符串类型转换为date类型。
4、转换类函数
转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。 转换类函数表
函数说    明
chartorwida(s)
该函数将字符串s转换为RIWD数据函数
convert(s,aset[,best])
该函数将字符串s由best字符集转换为aset字符集
rowidtochar()
该函数将ROWID数据类型转换为CHAR类型
to_char(x[,format])
该函数将表达式转换为字符串,format表示字符串格式
to_date(s[,format[lan]])
该函数将字符串s转换成date类型,format表示字符串格式,lan表示所使用的语言
to_number(s[,format[lan]])
该函数将返回字符串s代表的数字,返回值按照format表示字符串格式进行显示,lan表示所使用的语言
5、聚合类函数注意: 




补充:      SELECT[DISTINCT] * | 列名称[别名],列名称[别名],......|统计函数             ———— 5、确定查询列      FROM 数据表[别名],数据表[别名]......                           ———— 1、数据来源      [where 条件]                                                 ———— 2、过滤数据行      [GROUP BY 分组字段,分组字段,........]                         ———— 3、执行分组操作      [HAVING 分组过滤]                                           ———— 4、针对分组后的数据过滤      [ORDER BY 字段[ASC|DESC],字段[ASC|DESC],......]                  ———— 6、数据排序Where和having区别:      Where子句:是在分组前使用,而且不能使用统计函数进行验证,经过where筛选后的数据才可以分组。      Having子句:必须结合group by子句一起出现,是在分组后的过滤,可以使用统计函数。      范例:           统计查询有佣金和没有佣金人数和平均工资 注意以下区别:






6、通用函数(Oracle特色函数)(1)处理null数据,数字NVL(列 | 数据,默认值)     在数据库中null与任何数学计算其结果都是为空,那么就可以使用NVL函数,将null按照数字0来处理。范例:



(2)多数据判断:数据DECODE(字段 | 数据)
  范例:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: