所谓覅破解 发表于 2018-9-10 08:19:53

【ORACLE】ORACLE常用功能函数

  ORACLE常用函数功能演示
  文档撰写:孟祥新
  写在前面:
  ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码是内嵌在ORACLE数据库系统中的,因此其执行效率极高。
  在数据库编程中能广泛使用ORACLE所提供的内置函数,将大大提高程序代码的执行效率。“站在高人的肩膀上,将使你变得更高”。
  演示之前的环境设置:
  为了在SQL*PLUS中直观地显示函数返回的结果,我将“头”信息先屏蔽掉。操作如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  一、单行函数
  1.数值函数
  (1)       三角函数
  ①   SIN、ASIN、SINH(正弦、反正弦、双曲正弦)
  ②   COS、ACOS、COSH(余弦、反余弦、双曲余弦)
  ③   TAN、ATAN、TANH(正切、反正切,双曲正切)
  (2)       幂、方根及对数运算函数
  ①   POWER(m, n)(取m的n次幂)
  ②   SQRT(n)(取n的平方根)
  ③   EXP(n)(取自然对数底e的n次方根)
  ④   LN(n)(取n的自然对数)
  ⑤   LOG(m, n)(取以m为底n的对数)
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  (3)       数值处理函数
  ①   ABS(n)(取绝对值)
  ②   SIGN(n)(符号函数)
  ③   CEIL(n)(取不小于n的最小整数)
  ④   FLOOR(n)(取不大于n的最大整数)
  ⑤   ROUND(n, )(按m精度对n进行4舍5入)
  ⑥   TRUNC(n, )(按m精度对n进行截取)
  ⑦   MOD(m, n)(取m除以n的余数)
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  2.字符处理函数
  (1)       对字符串的大小写处理的函数
  ①   INITCAP(功能:将字符串中每个单词的首字母,变换为大写。)
  ②   UPPER(功能:将字符串中的所有字母,转换为大写。)
  ③   LOWER(功能:将字符串中的所有字母,转换为小写。)
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  (2)       对字符串进行处理的函数
  ①   CONCAT(字符串连接函数,也可用 || 替代)
  功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  ②   ASCII(取字符的编码)
  ③   CHR(将编码转换为对应的字符)
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  ④   LTRIM(去除左侧空格/指定字符)
  ⑤   RTRIM(去除右侧空格/指定字符)
  ⑥   TRIM(去除两侧的空格/去除指定字符)
  以上函数去除空格功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  以上函数去除指定字符功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  请注意:在用TRIM去除字符串中指定字符(非空格)时的特殊用法。
  ⑦   LPAD(左侧添充空格/指定字符)
  ⑧   RPAD(右侧添充空格/指定字符)
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  ⑨   LENGTH(取字符串的长度)
  ⑩   SUBSTR(截取子字符串)
  用法格式:SUBSTR(string, start [,length])
  功能说明:从字符串string的start位置开始向后截取length长度的子串
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  ⑾   INSTR(查找子字符串的位置)
  用法格式:INSTR(string, search_string [,n [,m]])
  功能说明:从字符串string的第n个字符开始查找search_string第m次出现的位置,如果按条件没有找到字符串,则返回0
  (注意:此函数返回的位置是以原字符串首字符所在位置为起始点的,首字符位置为1)
  函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  ⑿   REPLACE(子串替换)
  用法格式:REPLACE(string, search_string [,replace_string])
  功能说明:将字符串string中的所有search_string都替换为replace_string,如果省略replace_string,则将字符串string中的所有search_string都去掉。
  ⒀   TRANSLATE(字符转换)
  用法格式:TRANSLATE(string, search_set, replace_set)
  功能说明:将string中出现在search_set中的字符转换为replace_set相应位置的字符。
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  3.日期函数
  ①   SYSDATE(取当前的数据库系统时间)
  ②   ADD_MONTHS(加减指定的月份)
  ③   MONTHS_BETWEEN(取两个日期之间相隔的月数)
  ④   LAST_DAY(取指定日期所在月的最后一天)
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  ⑤   ROUND(date, ‘format_string’)
  功能:按日期掩码format_string的格式对给定的日期date进行舍/入。
  ⑥   TRUNC(date, ‘format_string’)
  功能:按日期掩码format_string的格式对给定的日期date进行截取。
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  4.类型转换函数
  功能:在数值和字符,以及字符和日期之间进行数据类型的转换
  说明:在ORACLE数据服务器,可以对数值形式的字符串隐式地转换为数值类型的数据,也可以将数值类型的数据隐式地转换为数值形式的字符串。但也可以进行如下的显式转换。
  ①   TO_CHAR(n)(将数值n转换为字符类型)
  ②   TO_NUMBER(‘string’)(将字符串string转换为数值类型)
  知识扩展:常用进制的转换
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  ③   TO_CHAR(date, ‘format_string’)(按照时间掩码format_string的格式要求,将日期型数据date转换为字符型数据)
  ④   TO_DATE(‘string’, ‘format_string’)(将字符型数据string按照时间掩码format_string的格式要求,转换为相应的日期型数据)
  常用的时间格式掩码如下:
  掩码元素
  含义
  YYYY
  四位数年份 (如:2005)
  YY
  二位数年份(如05)
  Q
  季度(1-4)
  MM
  月份(01-12)
  WW
  年的星期数(1-53),其中第一星期为年的第一天至第七天
  W
  月的星期数(1-5),其中第一星期为月的第一天至第七天
  DDD
  年的日(1-366)
  DD
  月的日(1-31)
  D
  周的日(1-7),其中周日为1,周六为7
  HH24
  24小时制(0-23)
  MI
  分钟(0-59)
  SS
  秒(0-59)
  SSSSS
  自午夜之后的秒(0-86399)
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  5.空值转换函数
  ①   NVL(expr1, expr2)
  功能:如果 expr1 的计算结果为 null 值,则返回 expr2 的值。如果 expr1 的计算结果不是 null 值,则返回 expr1 的值
  ②   NVL2(expr1, expr2, expr3)
  功能:如果expr1非空,则返回expr2的值;如果expr1为空,则返回expr3的值。
  ③   NULLIF(expr1, expr2)
  功能:比较两个表达式,如果相等返回空;如果不相等,返回第一个表达式的值。
  ④   COALESCE(expr1, expr2, ..., exprn)
  功能:返回表达式列表中的第一个非空表达式的值。
  6.查看环境参数函数
  (1)       USER函数             (返回当前用户名)
  (2)       USERENV函数
  ①         USERENV('ISDBA')                   (查看当前用户是否是DBA)
  ②         USERENV('LANGUAGE')          (查看环境所用的字符集)
  ③         USERENV('TERMINAL')            (查看当前用户终端的标识)
  以上函数用法演示如下:
  select USERENV('ISDBA'), USERENV('LANGUAGE'), USERENV('TERMINAL') from dual;
  (3)       SYS_CONTEXT函数
  说明:SYS_CONTEXT函数是在ORACLE 8i中新增的,在功能上比USERENV函数更加全面。
  用法格式:SYS_CONTEXT('USERENV', '')
  根据参数parameter来返回相应的信息
  ①   登录验证类型
  select SYS_CONTEXT('USERENV', 'AUTHENTICATION_TYPE') from dual;
  ②   当前登录数据库的用户名
  select SYS_CONTEXT('USERENV', 'CURRENT_USER') from dual;
  ③   当前登录客户端的操作系统用户名
  select SYS_CONTEXT('USERENV', 'OS_USER') from dual;
  ④   当前所在客户机名(包括所在工作组名)
  select SYS_CONTEXT('USERENV', 'HOST') from dual;
  ⑤   当前所在客户机/终端名
  select SYS_CONTEXT('USERENV', 'TERMINAL') from dual;
  ⑥   当前所在客户端的IP
  select SYS_CONTEXT('USERENV', 'IP_ADDRESS') from dual;
  ⑦   当前是否为DBA帐户
  select SYS_CONTEXT('USERENV', 'ISDBA') from dual;
  ⑧   当前的字符集
  select SYS_CONTEXT('USERENV', 'LANGUAGE') from dual;
  ⑨   当前所使用的网络协议
  select SYS_CONTEXT('USERENV', 'NETWORK_PROTOCOL') from dual;
  ⑩   当前所使用的日历
  select SYS_CONTEXT('USERENV', 'NLS_CALENDAR') from dual;
  ⑾   当前的货币单位
  select SYS_CONTEXT('USERENV', 'NLS_CURRENCY') from dual;
  ⑿   当前的日期格式
  select SYS_CONTEXT('USERENV', 'NLS_DATE_FORMAT') from dual;
  ⒀   当前的日期语言
  select SYS_CONTEXT('USERENV', 'NLS_DATE_LANGUAGE') from dual;
  ⒁   当前所在的地域
  select SYS_CONTEXT('USERENV', 'NLS_TERRITORY') from dual;
  ⒂   当前代理用户
  select SYS_CONTEXT('USERENV', 'PROXY_USER') from dual;
  7.DECODE函数
  DECODE函数用法格式与说明:
  格式:
  DECODE(col|expression,
  search1, result1
  [, search2, result2 ]
  [, search3, result3 ]
  [, ......,......]
  [, default]
  )
  说明:
  第一个参数可是是表的列,也可以是一个表达式。
  如果第一参数的值与search1相等,则函数返回result1的值;
  如果第一参数的值与search2相等,则函数返回result2的值;以此类推。
  如果第一参数的值与所有的search都不相等,则函数返回default的值。
  
  此函数用法示例如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  二、聚组函数
  功能:对一组数据进行运算。
  函数
  功能描述
  MAX
  最大值
  MIN
  最小值
  AVG
  平均值
  COUNT
  数量值
  SUM
  总计值
  以上函数功能演示如下:
http://blog.51cto.com/e/u261/themes/default/images/spacer.gif
  三、分析函数
  分析函数简介:ORACLE从8.1.6版开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚组函数的不同之处是对于每个组返回多行值,而聚组函数对于每个组只返回一行值。
  (ORACLE有一整套分析函数,功能极其强大,用法也非常灵活,关于这一块的功能演示,请待续……)

页: [1]
查看完整版本: 【ORACLE】ORACLE常用功能函数