kl800.com省心范文网

13 函数


Oracle

函数

? 补充 dual Dual 是 Oracle中的一个实际存在的表,任何用户均

可读取,常用在没有目标表的Select语句块中,用来
构成select的语法规则,dual里面只有一个字段

DUMMY,为VARCHAR2(1)型,永远只有一条记录。
使用

它可以:

1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual;

2、用来调用系统函数
3、得到序列的下一个值或当前值,用下面语句

4、可以用做计算器 select 7*9 from dual;
DUAL是属于SYS schema的一个表,然后以

PUBLIC SYNONYM的方式供其他数据库USER使用.

函数
系统内置函数 用户自定义函数

函数三要素:函数 名 输入参数 返回值

系统内置函数
? 数学运算函数 ? 字符串函数

? 统计函数
? 日期函数

系统内置函数—数学函数
? 数学函数的输入参数和返回值的数据类型都是数 字类型的。数学函数包括cos,cosh,exp,ln, log

,sin,sinh,sqrt,tan,tanh,acos,asin,atan
,round

数字函数
当检索的数据为数字数据类型时,可以使用数字函数进行数学计算。

函数 ABS(value)

说明 获取value数值的绝对值

CEIL(value)
FLOOR(value)
SIN(value) COS(value)

返回大于或等于value的最小整数值
返回小于或等于value的最大整数值 获取value的正弦值 获取value的余弦值

数字函数
函数 说明 对value按precision精度四舍五入 取余 返回value的平方根。若value为负数,则该函数无意 义 返回对value1截断的结果,value2为可选参数,表示 对第几位小数截断。如果不指定value2,则从 value1的0位小数处截断;如果value2为负数,则 对value1在小数点 左边的第|value|位处截断。例如TRUNC(5.77) = 5 ; TRUNC(5.77 , 1) = 5.7 ;TRUNC(5.77 , -1) = 0

ROUND(value , precision)
MOD(value , divisor)

SQRT(value) TRUNC(value1[ , value2 ])

字符函数

函数 ASCII(string) CHR(integer)

说明 返回给定ASCII字符string的十进制值 返回给定整数integer所对应的ASCII字符 连接字符串string1和字符串string2

CONCAT(string1 , string2)
INITCAP(string)

字符串string第一个字母变为大写,其余字母不变

字符函数
函数 INSTR(string1 , string2[ , start][ , occurrence]) 说明 在string1中查找字符串string2,返回string2所在的位置。从 start位置开始查找;返回string2第occurrence次出现的位置

LOWER(string)
UPPER(string) LPAD(string , count [ , char ])

将字符串string的全部字母转换为小写
将字符串string的全部字母转换为大写 使用指定的字符char在字符串string的左边填充。其中string 为被操作的字符串,count为填充的字符总数,char为可选 项,表示要填充的字符,默认为空格 使用指定的字符在字符串string的右边填充。各参数的意义 同LPAD

RPAD(string , start [ , char ])

字符函数
LTRIM(string [ , char ])
RTRIM(string [ , char ]) REPLACE(string , char1[ , char2])

删除字符串string中左边出现的字符char,char的默认值为空格
删除字符串string中右边出现的字符char,char的默认值为空格 替换字符串。其中string表示被操作的字符串,char1表示要查 找的字符,char2表示要替换的字符。如果没有指定char2,则 要替换的字符默认为空字符串,即每查找到指定的字符串时 ,删除该字符串

SUBSTR(string , start [ , 获取源字符串string的子串,其中string为源字符串;start表示 count ]) 输出的子字符串的第一个字符在源字符串中的位置;count表 示输出的子字符串的字符数目 LENGTH(string) 返回字符串参数string的长度

聚合函数
检索数据不仅仅是把现有的数据简单地从表中取出来,很多情况下,还
需要对数据执行各种统计计算。

函数
AVG(x) SUM(x) MAX(x) MIN(x) COUNT(x) MEDIA(x)

说明
返回对一个数字列或计算列求取的平均值 返回一个对数字列或计算列的汇总和 返回一个数字列或计算列中的最大值 返回一个数字列或计算列中的最小值 返回记录的统计数量 返回x的中间值

日期时间函数
SQL语句主要通过日期时间函数操纵日期和时间数据。在Oracle系统中,默认 的日期格式为DD-MON-YY。 函数 SYSDATE( ) CURRENT_TIMESTAMP( ) ADD_MONTHS(date , count) 说明 获取系统当前的日期值 获取当前的日期和时间值 在指定的日期date上增加count个月

LAST_DAY(date)
MONTHS_BETWEEN(date1 , date2) NEW_TIME(date , 'this' , 'other') NEXT_DAY(date , 'day') GREATEST(date1 , date2 , …)

返回日期date所在月的最后一天
返回date1和date2间隔多少个月 将时间从this时区转变为other时区 返回指定日期之后下一个星期几的日期。 这里的day表示星期几 从日期列表中选出最早的日期

转换函数
? to_date
函数to_date用于将字符 串转换成date类型的数 据。 ? to_char ( , 格式)

使用to_char时候,用到的格式符: 9:显示数字,并忽略前面0 yy:两位数字的年份 2004-->04
0:显示数字,如位数不足,则用 0补齐 .:在指定位置显示小数点 ,:在指定位置显示逗号 $:在数字前加美元 L:在数字前面加本地货币符号 C:在数字前面加国际货币符号 G:在指定位置显示组分隔符、 D:在指定位置显示小数点符号(.)

yyyy:四位数字的年份 2004年
mm:两位数字的月份 8月-->08 dd:两位数字的天 30号-->30 hh24: 8点-->20 hh12:8点-->08

mi、ss-->显示分钟\秒

? 显示薪水的时候,把本地货币单位加在前面 SQL> select ename, to_char(hiredate, 'yyyy-mm-dd

hh24:mi:ss'), to_char(sal,'L99999.99') from emp;
? 问题:显示1980年入职的所有员工

SQL> select * from emp where to_char(hiredate,
'yyyy')=1980; ? 显示所有12月份入职的员工 SQL> select * from emp where to_char(hiredate, 'mm')=12;

6.6 用户定义函数
用户定义函数是存储在数据库中的代码块,可以把值返回
到调用程序。调用时如同系统函数一样,例如max(value)函数, value被称为参数。函数参数有以下3种参数类型。 (1)IN参数类型:表示输入给函数的参数。只能作为形参 传递值,不能在函数中赋值。 (2)OUT参数类型:表示参数在函数中被赋值,可以传给 函数调用程序。OUT参数在函数体内被赋值是允许的,out参

数不能传递值。
(3)IN OUT参数类型:表示参数既可以传值也可以被赋值。

? 函数用于返回特定的数据,当建立函数时,在函 数头部必须包含return子句。而在函数体内必须包

含return语句返回的数据。我们可以使用 create
function来建立函数,实际案例:

-输入雇员的姓名,返回该雇员的年薪

6.6.1 用户定义函数的创建与调用
? 1.使用SQL命令创建函数 在Oracle中,创建用户定义函数使用CREATE FUNCTION语句。 语法格式: CREATE [OR REPLACE] FUNCTION function_name /*函数名称*/ ( parameter_name1 mode1 datatype1, /*参数定义部分*/ parameter_name2 mode2 datatype2, parameter_name3 mode3 datatype3, … ) RETURN return_datatype /*定义返回值类型*/ {IS | AS} [声明变量] BEGIN function_body; /*函数体部分*/ [RETURN scalar_expression;] /*返回语句*/ END [function_name];

创建用户自定义函数的简介格式:

Create or replace function 函数名(参数 模式 类型
) RETURN 返回值类型

is/as
声明变量;

Begin
函数体;

Return 返回值变量;

输入雇员的姓名,返回该雇员的年薪 create function annual_incomec(name varchar2)

return number is
annual_salazy number(7,2); begin --执行部分 select sal*12+nvl(comm, 0) into annual_salazy from emp wher

e ename=name;
return annual_salazy; end;

? 如果函数创建过程有编译错误,可以使用show
error;命令显示错误

2.调用函数
无论在命令行还是在程序语句中,函数都可以通过

函数名称直接在表达式中调用。
语法格式: variable_name:=function_name[(实参1,实参2,…)]

函数调用: select annual_income('SCOTT') from dual;

也可以
declare

shuchu number(6);
begin

shuchu:= annual_income('SCOTT');
dbms_output.put_line(shuchu);

注意: (1) 如果函数没有参数,那么函数名后不应该要括号;

(2) 创建函数的时候end后面一定要记得写函数名;
练习:

? 创建一个统计emp表中不同岗位人数的函数
? 计算某部门某岗位的平均薪水

函数的删除
函数的删除自定义函数的删除方法类似于表的删除 ,语法格式如下:

drop function [schema.]functionName;

函数练习
? 创建用户自定义函数fun1,实现统计某岗位的平 均工资

? 创建用户自定义函数fun2,将指定empno号的记
录中的sal字段值乘以1.05。(即 sal值乘以1.05后

返回)
? 创建用户自定义函数fun3,实现统计某部门的平 均工资

1.无参数函数 建立无参数的函数

CREATE OR REPLACE FUNCTION cur_datetime
RETURN VARCHAR2

IS
BEGIN RETURN TO_CHAR(sysdate, 'YYYY"年"MM"月

"DD"日"HH24″时"MI"分"SS"秒"');
END; /


函数13

函数13_数学_高中教育_教育专区。高三二轮复习教案函数与导数 三年高考回顾: 1、 (07)曲线 y ? e 2 在点 (4,e2 ) 处的切线与坐标轴所围三角形的面积为(...

13 函数

13 函数 在 Linux Shell 中,所有函数定义都是平行的,即不允许在函数体内再定义其他的函数,但允 许函数之间相互调用。 13.1、函数的定义和基础知识 在 Linux ...

13.1函数(1)

13.1函数(1)_数学_初中教育_教育专区。12.1.1 函数(第一课时)主备人 : 余树华 学习目标: 1.了解常量、变量的意义,能分清实例中出现的常量,变量与自变量和...

13北京函数

2 13 一模 1 已知定义在 R 上的函数 f ( x ) 的对称轴为 x ? ?3 ,且当 x ? ?3 时, f ( x) ? 2x ? 3 .若函数 ( B) 1 (D) ? 1 f...

第十三章函数列与函数项级数

由于函数项级数的一致收敛性是由它的部分和函数列来决定的,因此有 定理 13.3(函数项级数一致收敛的柯西准则)函数项级数 ? u n ( x) 在 D 上一致收敛的充...

实训13(函数)

实训13(函数)_计算机软件及应用_IT/计算机_专业资料。四川职业技术学院计算机科学系实验(实训)报告课程学号、姓名 数据库维护与管理 教师 许俊 班级 软件四班 函数...

13.1.2 函数

13.1.2 函数_理学_高等教育_教育专区。13.1.2 函数 1.一般地,在一个变化过程中,如果有两个变量 x 与 y,并且对于 x 的每一个确定的值,y 都有唯一确定...

13.1函数(1)

13.1 函数(1) 一、学前准备 1. 问题 1 用热气球探测高空气象.设热气球从海拔 500m 处的某地升空, 它上升后到达的海拔高度 h m 与上升时间 t min 的...

13.1函数

13.1函数(二) 4页 免费1​3​.​1​函​数 暂无评价|0人阅读|0次下载|举报文档 沪​科​版​八​年​级​上​册​第​1​3...

13函数简单性质

13函数简单性质 数学数学隐藏>> 函数的简单性质-奇偶性( 函数的简单性质-奇偶性(1)【本课重点】奇偶性的概念。 本课重点】 预习导引】 【预习导引】 1、判断...

高中13种函数图像 | 在反比例函数y 13m x | 高中13种函数图像汇总 | excel 函数 月份 13月 | 已知函数f x 13 8x | excel函数公式大全 | 三角函数 | sumif函数的使用方法 |