1 / 20
文档名称:

数据库 实验11.ppt

格式:ppt   大小:359KB   页数:20页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库 实验11.ppt

上传人:jiaoyuan2014 2021/7/18 文件大小:359 KB

下载得到文件列表

数据库 实验11.ppt

文档介绍

文档介绍:实验11 用户定义数据类型与自定义函数
本实验包含两方面的内容:一个是学习掌握用户定义数据类型的特点及定义方法,以及如何使用用户定义数据类型;另一个是学习掌握用户自定义函数的概念、创建及使用方法。
【知识要点】

(1)为何使用用户定义数据类型
当一个或多个表的字段中要存储同样类型的数据,且想确保这些字段具有完全相同的数据类型、长度和是否为NULL时,可使用用户定义数据类型。例如,学生号和教师号的数据类型都是基于CHAR的有固定长度6个字符,且不为空。
(2)用户定义数据类型的特点
用户定义的数据类型名称在数据库中必须是唯一的,但是名称不同的用户定义的数据类型可以有相同的定义。
(3)创建用户定义数据类型语句
sp_addtype [***@typename=] 类型,
[***@phystype=] 系统定义的数据类型
[,[***@nulltype = ‘NULL|NOT NULL’]
[,[***@owner = ‘属主名’]
1
实验11 用户定义数据类型与自定义函数

(1)为何使用用户定义函数
用户定义函数可以让你针对特定应用程序问题提供解决方案。这些函数可以简单到计算一个值,也可以复杂到定义和实现业务处理规则。定义了这些函数以后,在需要的时候调用即可,如果业务处理的规则发生变化,只需要修改相应的函数,只要这些接口未发生变化,就可以保持原来的函数调用。
(2)用户定义函数的类型
SQL Server2000有3种自定义函数:标量函数、内嵌表值函数和多语句表值函数。
用户定义函数采用零个或更多的输入参数并返回标量值或表。函数最多可以有 1124 个输入参数。当函数的参数有默认值时,调用该函数时必须指定默认 DEFAULT 关键字才能获取默认值。用户定义函数不支持输出参数。
标量函数
标量函数返回在 RETURNS 子句中定义的类型的单个数据值。返回类型可以是除 text、ntext、image、cursor 和 timestamp 之外的任何数据类型。不支持用户定义数据类型和非标量类型(如 table 或 cursor)。
内嵌表值函数
内嵌表值函数返回table。没有函数主体;表是单个SELECT语句的结果集。
多语句表值函数
多语句表值函数返回table,在 BEGIN...END 块中定义的函数主体包含 TRANSACT-SQL 语句,这些语句可生成行并将行插入将返回的表中。
2
实验11 用户定义数据类型与自定义函数
(3)创建用户定义函数语句
标量函数
CREATE FUNCTION [ 属主名.] 函数名     ([{***@parameter_name [AS] 标量参数数据类型 [=default]} [ ,...n ] ] )
RETURNS 标量返回数据类型
[ WITH < function_option> [ [,] ...n] ]
[ AS ]
BEGIN     函数体     RETURN 标量表达式 END
内嵌表值函数
CREATE FUNCTION [ 属主名.] 函数名     ( [ { ***@parameter_name [AS] 标量参数数据类型 [ = default ] } [ ,...n ] ] )
RETURNS TABLE
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
RETURN [ ( ) select语句 ]
3
实验11 用户定义数据类型与自定义函数
多语句表值函数
CREATE FUNCTION [属主名.] 函数名     ( [ { ***@parameter_name [AS] 标量参数数据类型 [ = default ] } [ ,...n ] ] )
RETURNS ***@return_variable TABLE < table_type_definition >
[ WITH < function_option > [ [,] ...n ] ]
[ AS ]
BEGIN     函数体     RETURN END
< function_option > ::=     { ENCRYPTION | SCHEMABINDING }
< table_type_definition > ::=     ( { column_definition | table_constraint } [ ,...n ] )
【实验目的】
学习和掌握用户定义数据类型的概念、创建及使用方法;
学习和掌握用户定义函数的概念、创建及使用