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; /


实验十三 函数

实验十三 函数_理学_高等教育_教育专区。(1)根据半径r,计算并返回圆的周长。(3)在主函数输入半径r,调用两个子函数求圆的周长、面积,并输出。(1)求两个数中...

2014年沪科版八年级上册数学第十三章 一次函数练习题(附解析)

2014年沪科版八年级上册数学第十三章 一次函数练习题(附解析)_数学_初中教育_教育专区。2014年沪科版八年级上册数学第十三章 一次函数练习题(附解析)…...

金蝶K13函数及代码说明

金蝶K13函数及代码说明_财务管理_经管营销_专业资料。金蝶 K/3ERP 报表中函数及代码说明 (一) 函数类型说明 数据项 说明 必填项(是/否) ACCT 总账科目取数...

13 InstallShield内部库函数全集十三-字符串函数(中文版)

13 InstallShield内部库函数全集十三-字符串函数(中文版)_IT/计算机_专业资料。Installshield 函数介绍内部库函数全集十三 字符串函数(中文版) InstallShield 内部库函数...

office excel最常用函数公式技巧搜集大全(13.12.09更新)

office excel最常用函数公式技巧搜集大全(13.12.09更新)_计算机软件及应用_IT/计算机_专业资料。excel 常用函数公式及技巧搜集【身份证信息相关数据提取】 从身份证...

2015年中考数学复习专题复习第十三讲反比例函数(含参考答案)

反比例函数 y= (k≠0)在第一象限的图象经过 OA 的中点 B,交 AC 于点 D,连接 OD.若△OCD∽△ACO,则直线 OA 的解析式为 三、解答题 13.(2014?菏泽)...

实验13 虚函数

实验13函数_计算机软件及应用_IT/计算机_专业资料。实验 13函数 牛旭艳 智能二班 20110807201 一、实验目的 1、复习运算符重载。 2、了解虚基类的作用和用...

06-13年高考理科数学分类——三角函数(四川卷)(附详细解答)

06-13年高考理科数学分类——三角函数(四川卷)(附详细解答)_数学_高中教育_教育专区。高考真题,理科数学,三角函数06—13 年四川高考理科数学三角函数类题目集锦(06...

第19章 一次函数全章教案(共13个)

y=13.71 注意: (1)函数是变量,例如:y=3x, y 是可以随着 x 的变化而变化的量,变量 y 是变量 x 的函数; (2)函数值是变量所取的某个具体数值,一个...

讲义十三 一次函数的应用

讲义十 一次函数的应用 讲义十三 一次函数的应用 1. 已知一次函数 y = ( m + 2) x + (1 ? m) . (1)若 y 随 x 的增大而减小,且函数图象与 x 轴...

高中13种函数图像 | 高中13种函数图像汇总 | c 生成 ean13 函数 | excel13 自定义函数 | 已知函数f x 13 8x | 三角函数 | excel函数公式大全 | sumif函数的使用方法 |