DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第3部分
2010-02-18 15:01:14 来源:WEB开发网标量函数通常用来执行基本的数学计算和操作字符串。
聚合函数
聚合函数(也称为列函数)也返回一个标量值,这个值是一组输入值的计算结果。通常情况下,这组输入值来自表中的一列,或来自VALUES子句中的元组。聚合函数的示例包括内置函数MAX()和MIN()。
表函数
表函数向引用它的SQL语句返回一个表。只能在SELECT语句的FROM子句中引用表函数。但是,在能够应用于只读视图的任何操作(例如,联结、分组操作以及 UNION和INTERSECT 等集操作)中,都可以使用表函数返回的表。
表函数可以发出操作系统调用、从文件中读取数据以及通过网络访问数据。另外,SQL表函数还可以用来封装修改表数据的SQL语句。(外部表函数不能封装SQL语句)。但是,与标量函数一样,在表函数中不支持事务管理。因此,在表函数体中无法执行提交和回滚操作。
表函数通常用来封装复杂但常用的子查询,以及为非关系数据提供表格式接口。例如,用户定义的外部表函数可以读取电子表格并生成一个数据表,然后可以把生成的数据表直接插入基表或者通过查询访问它。
行函数
行函数返回单一表行。行函数只能供用户定义的结构化类型使用;不能单独使用行函数,也不能在抽象数据类型的上下文之外的SQL语句中使用。
通常,行函数用于把结构化类型属性映射到由内置数据类型值组成的行,以便能够在查询或SQL操作中访问结构化类型属性。例如,假设数据库有一个用户定义的结构化数据类型'Manager',此类型扩展另一个结构化数据类型'Employee',其中包含 'Employee'和'Manager' 特有的属性。如果希望在查询中引用属性值,那么可以创建一个行函数,它把属性值转换为查询可以引用的数据行。
用户定义的函数
UDF 是用来扩展和增强 DB2 内置函数提供的功能的特殊对象。顾名思义,UDF 是由具有适当权力和/或特权的数据库用户创建的。与DB2 内置函数不同,UDF 可以使用系统调用和DB2的管理API,因此能够在系统、应用程序和数据库之间进行更多的协作。可以创建五种 UDF:
有源(或模板)
SQL 标量、表或行
外部标量
外部表
OLE DB外部表
通过执行CREATE FUNCTION SQL语句创建(或重新创建)UDF。这个语句有几种形式,应该使用的形式由要创建的函数的类型决定。
有源(或模板)函数
有源函数是从一个已经向数据库注册的函数(称为源函数)构造出的UDF。有源函数在本质上可以是标量、列或表函数,还可以用它们覆盖 +、-、*和/ 等操作符。在调用有源函数时,传递给它的所有参数被转换为底层源函数所需的数据类型,然后执行源函数本身。执行完成时,源函数对产生的结果执行必要的转换,并把控制返回给调用UDF的SQL语句。有源函数最常见的用途是,让用户定义的不同数据类型有选择地继承内置数据类型的某些语义。
通常,如果以现有函数作为源的UDF的目的是向用户定义数据类型提供该函数的支持,那么UDF和有源函数使用相同的名称。这使用户能够用一个用户定义的不同类型调用相同的函数,而不需要额外的函数定义。一般情况下,多个函数可以使用相同的函数名,只要每个函数的签名都有些差异即可。
用来创建有源函数的CREATE FUNCTION语句形式的基本语法如下:
清单 1. 用来创建有源函数的CREATE FUNCTION语句
CREATE FUNCTION [FunctionName] ( <<[ParameterName]> [InputDataType] ,...> )
RETURNS [OutputDataType]
<SPECIFIC [SpecificName]>
SOURCE [SourceFunction] <([DataType] ,...)>
<AS TEMPLATE>
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接