【ORACLE】ORACLE常用功能函数

ORACLE常用函数功能演示

文档撰写:孟祥新

写在前面:

ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码是内嵌在ORACLE数据库系统中的,因此其执行效率极高。

在数据库编程中能广泛使用ORACLE所提供的内置函数,将大大提高程序代码的执行效率。“站在高人的肩膀上,将使你变得更高”。

演示之前的环境设置:

为了在SQL*PLUS中直观地显示函数返回的结果,我将“头”信息先屏蔽掉。操作如下:

一、单行函数

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的对数)

以上函数功能演示如下:

(3)       数值处理函数

①     ABS(n)(取绝对值)

②     SIGN(n)(符号函数)

③     CEIL(n)(取不小于n的最小整数)

④     FLOOR(n)(取不大于n的最大整数)

⑤     ROUND(n, [m])(按m精度对n进行4舍5入)

⑥     TRUNC(n, [m])(按m精度对n进行截取)

⑦     MOD(m, n)(取m除以n的余数)

以上函数功能演示如下:

2.  字符处理函数

(1)       对字符串的大小写处理的函数

①     INITCAP(功能:将字符串中每个单词的首字母,变换为大写。)

②     UPPER(功能:将字符串中的所有字母,转换为大写。)

③     LOWER(功能:将字符串中的所有字母,转换为小写。)

以上函数功能演示如下:

(2)       对字符串进行处理的函数

①     CONCAT(字符串连接函数,也可用 || 替代)

功能演示如下:

②     ASCII(取字符的编码)

③     CHR(将编码转换为对应的字符)

以上函数功能演示如下:

④     LTRIM(去除左侧空格/指定字符)

⑤     RTRIM(去除右侧空格/指定字符)

⑥     TRIM(去除两侧的空格/去除指定字符)

以上函数去除空格功能演示如下:

以上函数去除指定字符功能演示如下:

请注意:在用TRIM去除字符串中指定字符(非空格)时的特殊用法。

⑦     LPAD(左侧添充空格/指定字符)

⑧     RPAD(右侧添充空格/指定字符)

以上函数功能演示如下:

⑨     LENGTH(取字符串的长度)

⑩     SUBSTR(截取子字符串)

用法格式:SUBSTR(string, start [,length])

功能说明:从字符串string的start位置开始向后截取length长度的子串

以上函数功能演示如下:

⑾     INSTR(查找子字符串的位置)

用法格式:INSTR(string, search_string [,n [,m]])

功能说明:从字符串string的第n个字符开始查找search_string第m次出现的位置,如果按条件没有找到字符串,则返回0

注意:此函数返回的位置是以原字符串首字符所在位置为起始点的,首字符位置为1

函数功能演示如下:

⑿     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相应位置的字符。

以上函数功能演示如下:

3.  日期函数

①     SYSDATE(取当前的数据库系统时间)

②     ADD_MONTHS(加减指定的月份)

③     MONTHS_BETWEEN(取两个日期之间相隔的月数)

④     LAST_DAY(取指定日期所在月的最后一天)

以上函数功能演示如下:

⑤     ROUND(date, ‘format_string’)

功能:按日期掩码format_string的格式对给定的日期date进行舍/入。

⑥     TRUNC(date, ‘format_string’)

功能:按日期掩码format_string的格式对给定的日期date进行截取。

以上函数功能演示如下:

4.  类型转换函数

功能:在数值和字符,以及字符和日期之间进行数据类型的转换

说明:在ORACLE数据服务器,可以对数值形式的字符串隐式地转换为数值类型的数据,也可以将数值类型的数据隐式地转换为数值形式的字符串。但也可以进行如下的显式转换。

①     TO_CHAR(n)(将数值n转换为字符类型)

②     TO_NUMBER(‘string’)(将字符串string转换为数值类型)


知识扩展:常用进制的转换

③     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)

以上函数功能演示如下:

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>‘)

根据参数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的值。

 

此函数用法示例如下:

二、聚组函数

功能:对一组数据进行运算。


函数


功能描述


MAX


最大值


MIN


最小值


AVG


平均值


COUNT


数量值


SUM


总计值

以上函数功能演示如下:

三、分析函数

分析函数简介:ORACLE从8.1.6版开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚组函数的不同之处是对于每个组返回多行值,而聚组函数对于每个组只返回一行值。

(ORACLE有一整套分析函数,功能极其强大,用法也非常灵活,关于这一块的功能演示,请待续……)

时间: 2024-12-13 10:12:31

【ORACLE】ORACLE常用功能函数的相关文章

Python常用功能函数

Python常用功能函数汇总 1.按行写字符串到文件中 import sys, os, time, json def saveContext(filename,*name): format = '^' context = name[0] for i in name[1:]: context = context + format + str(i) context = str(context).replace('(','(').replace(')',')').replace(',',',').re

re模块中常用功能函数

re模块中常用功能函数 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数. re.match函数

常用功能函数-密码登陆函数

密码登陆-功能函数 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> //包含getch(); 从控制台读取一个字符,但不显示在屏幕上 #pragma warning(disable:4996) //IDE默认禁止这种容易产生漏洞的旧函数,例如fopen(),现在需要使用fopen_s,要想使用

Oracle数据库常用SQL函数

1.SQL函数的概念: 函数一般是在数据上执行的,它给数据的转换和处理提供了方便.只是将取出的数据进行处理,不会改变数据库中的值.(类似于java中的方法但函数只是将数据库中的数据取出(复制)到函数中进行运算,并不会修改数据库中的数据) 2.Sql函数可以分为组函数和单行函数. –单行函数对单个数值进行操作,并返回一个值–组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句 3.单行函数的分类: 单行函数分为字符函数.数字函数.日期

笔试题中的常用功能函数

1. 请编写一个C 函数,该函数将给定的一个整数转换成字符串. void IntToCharChange(int num,  char* pval) { char strval[100]; int i , j; int val0 = 0; int val1 = 0; val0 = num; for(i=0; i<100; i++) { val1 = val0 % 10; //取余val0 = val0 / 10; // 取整strval[i] = val1 + 48;  // 数字-字符if(v

javascript常用功能函数

特殊字符转义:将<, >, &, “进行转义 function escape(str){ return str.replace(/[<>"&]/g,function(match){ switch(match){ case "<": return "<"; case ">": return ">"; case "&": retu

Oracle 常用系统函数

2  字符函数 1.    replace( 字符串1,字符串2,字符串3) replace( char, search_string, replace_string) 功能:在"字符串1"中搜索"字符串2",并将其替换为"字符串3". 例如下面的命令是将所有员工名字中出现的"A"替换为"中国". SQL>selectreplace(ename, 'A', '中国') from scott.emp;

Oracle常用单行函数(原创)

前言: 想把单行函数进行一个比较全面的总结,并分享给有需要的人,有不明之处还请多多指教. SQL函数:Oracle的内置函数,包括了单行函数和多行函数,本文重点讲解单行函数.单行函数又可以分为许多类,本人将常用的分为5大类: 字符函数(7个),数值函数(7个),日期函数(7个),转换函数(3个),通用函数(9个),下面开始分析. 一.字符函数: 1.concat函数:用来拼接2个字符串,Expression:concat(str1,str2); Example: select concat('m

oracle的常用函数 instr() 和substr()函数

from:http://1055592535.iteye.com/blog/1676235 在Oracle中 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符. 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置. 语法: instr(sourceString,destString,start,appearPosition) instr('源字符串' , '目标字符串' ,'开始位置','第几次出现') 其中sourceString代表源字符串: destStrin