第7章-索引和视图(SQL-Server或数据库).pptVIP

第7章-索引和视图(SQL-Server或数据库).ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.3 用户自定义函数 5.3.1 函数概念 5.3.2 创建和调用标量函数 5.3.3 创建和定义内嵌表值函数 5.3.4 创建和调用多语句表值函数 5.3.5 更改和删除函数 5.3.1 函数概念 函数是由一个或多个SQL 语句组成的子程序,它可用于封装代码以提供代码共享的功能。 在概念上类似于一般的程序设计语言中定义的函数。 SQL Server 2000 支持三种用户自定义函数: 标量函数 内嵌表值函数 多语句表值函数 5.3.2 创建和调用标量函数 定义标量函数 CREATE FUNCTION [ 拥有者名.] 函数名 ( [ { @参数名 [AS] 标量数据类型 [ = default ] } [ ,...n ] ] ) RETURNS 返回值类型 [ AS ] BEGIN 函数体 RETURN 标量表达式 END 创建示例 例1.创建计算立方体的体积的函数。三个输入参数,分别为立方体的长、宽和高,类型均为整型。 CREATE FUNCTION dbo.CubicVolume (@CubeLength int, @CubeWidth int, @CubeHeight int) RETURNS int AS BEGIN RETURN ( @CubeLength * @CubeWidth * @CubeHeight ) END 创建示例 例2.创建统计指定课程的选课人数的函数。 CREATE FUNCTION dbo.f_count(@cname varchar(20)) RETURNS int AS BEGIN DECLARE @x int SELECT @x=count(*) from course c join sc on sc.cno = c.cno WHERE cname = @cname RETURN @x END 调用标量函数 调用例1所定义的函数,计算长、宽、高分别为4、6、8的立方体的体积。 SELECT dbo.CubicVolume(4,6,8) 调用例2所定义的函数,查询“VB程序设计”课程的选课人数。 SELECT cname as 课程名, dbo.f_count('VB程序设计') as 选课人数 FROM course WHERE cname = 'VB程序设计' 5.3.3 创建和定义内嵌表值函数 定义内嵌表值函数: CREATE FUNCTION [ 拥有者名.] 函数名 ( [ { @参数名 [AS] 标量数据类型 [ = default ] } [ ,...n ] ] ) RETURNS TABLE [ AS ] RETURN [ ( ] select语句 [ ) ] 创建示例 例3.创建查询指定系的学生的姓名、年龄和性别的函数。 CREATE FUNCTION dbo.f_sdept (@dept varchar(20)) RETURNS TABLE AS RETURN ( SELECT sname, sage, ssex from student WHERE sdept = @dept) 创建示例 例4.创建查询指定课程中成绩大于指定分数的学生的姓名、所在系和这门课程的考试成绩。 CREATE FUNCTION dbo.f_grade ( @cname varchar(20), @grade int) RETURNS TABLE AS RETURN ( SELECT sname, sdept, grade from student s JOIN sc ON s.sno = sc.sno JOIN course c ON c.cno = sc.cno WHERE cname = @cname and grade > @grade) 调用内嵌表值函数 利用例3定义的内嵌表值函数,查询“计算机系”学生的信息。 SELECT * FROM dbo.f_sdept ('计算机系') 利用例4所定义的内嵌表值函数,查询“VB”课程成绩大于70分的学生信息。 SELECT * FROM dbo.f_grade (‘VB程序设计', 70) 5.3.4 创建和调用多语句表值函数 定义多语句表值函数: CREATE FUNCTION [ 拥有者名.] 函数名 ( [ { @参数名 [AS] 标量数据类型 [ = default ] } [ ,...n ] ] ) RETURNS

文档评论(0)

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

喜欢分享的作者

1亿VIP精品文档

相关文档