数据库SQL(三):Function(函数)

1、Definition

SQL提供了类似高级语言的程序结构,如分支结构(if语句)、循环结构(while,for语句等)可以完成复杂的“业务逻辑”,并存储在数据库中,然后在SQL中调用。例如面对一些数据管理应用时,一些业务规则的定义,一些可以通过参数调用的功能实现等实现,这时可以用存储过程来实现。当规则发生变化时,可以不需要修改其它代码。当参数变化时,不需要重复写代码。

2、Example

函数定义形式如下
数据库SQL(三):Function(函数)
函数要有函数名、自变量(参数)、返回值和函数体(函数实现的功能)。这个例子函数名为dept_count,一个参数为dept_name,类型为varchar(20),返回值为integer。Begin-end括号里的语句是函数体,return关键字表明函数返回值。

函数调用过程如下
数据库SQL(三):Function(函数)

3、Table Function

SQL也支持返回关系作为结果的函数:table function。
定义如下
数据库SQL(三):Function(函数)
注意这个例子的return table,table的结构(schema)自己定义,与函数体实现的sql一致。

Table function的调用如下
数据库SQL(三):Function(函数)