关系数据库标准语言及TSQL.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关系数据库标准语言及TSQL

【例5.35】如下程序对上例定义的函数调用。 USE XSCJ /*用户函数在此数据库中已定义*/ /* 定义局部变量 */ DECLARE @course1 char(20) DECLARE @aver1 int /* 给局部变量赋值 */ SELECT @course1 = ‘101 /* 调用用户函数,并将返回值赋给局部变量 */ SELECT @aver1=dbo.average(@course1) /* 显示局部变量的值 */ SELECT @aver1 AS 101课程的平均成绩 * * * * 利用EXEC语句执行 用T-SQL EXECUTE语句调用用户函数时,参数的标识次序与函数定义中的参数标识次序可以不同。 调用形式: 所有者名.函数名 实参1,…,实参n 或 所有者名.函数名 形参名1=实参1,…, 形参名n=实参n 【例5.36】调用上述计算平均成绩的函数。 USE XSCJ /* 用户函数在此数据库中已定义 */ DECLARE @course1 char(20) DECLARE @aver1 int /* 显示局部变量的值 */ EXEC @aver1 = dbo.average @cnum = 101 /*通过EXEC调用用户函数,并将返回值赋给局部变量*/ SELECT @aver1 AS 101课程的平均成绩 GO * * * * 【例5.37】在XSCJ中建立一个course表,并将一个字段定义为计算列。 USE XSCJ /*用户函数在此数据库中已定义*/ CREATE TABLE course ( cno int, /*课程号*/ cname nchar(20), /*课程名*/ credit int, /*学分*/ aver AS /*将此列定义为计算列*/ ( dbo.average(cno) ) ) * * (1) 内嵌表值函数的定义 语法格式: CREATE FUNCTION [ owner_name.] function_name /*定义函数名部分*/ ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) /*定义参数部分*/ RETURNS TABLE /*返回值为表类型*/ [ WITH function_option [ [,] ...n ] ] /*定义函数的可选项*/ [ AS ] RETURN [ ( ) select-stmt [ ] ] /*通过SELECT语句返回内嵌表*/ function_option ::={ ENCRYPTION | SCHEMABINDING } 2. 内嵌表值函数(Table Function) 内嵌表值函数可用于实现参数化视图。 【例5.38】对于XSCJ数据库,为了让学生每学期查询其各科成绩及学分,可以利用XS、KC、XS_KC三个表,创建视图。 CREATE VIEW ST_VIEW AS SELECT dbo.XS.学号, dbo.XS.姓名, dbo.KC.课程名, dbo.XS_KC.成绩 FROM dbo.KC INNER JOIN dbo.XS_KC ON dbo.KC.课程号 = dbo.XS_KC.课程号 INNER JOIN dbo.XS ON dbo.XS_KC.学号 = dbo.XS.学号 * * 在上面的基础上定义内嵌表值函数: create function st_score(@student_id char(6)) returns table as return ( select * from xscj.dbo.st_view where dbo.st_view.学号=@student_id ) * * * * (2) 内嵌表值函数的调用 内嵌表值函数只能通过SELECT语句调用,内嵌表值函数调用时,可以仅使用函数名。 【例5.39】调用st_score()函数,查询学号为“001101”学生的各科成绩及学分。 SELECT * FROM XSCJ.[dbo].st_score(001101) GO 3.多语句表值函数(Inline Function) 内嵌表值函数和多语句

文档评论(0)

phltaotao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档