- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库技术 应用及实验指导 高等院校计算机教材系列 第5章 视图、存储过程和用户自定义函数 5.1 视图 5.2 存储过程 5.3 用户自定义函数 5.1 视图 5.1.1 视图概念 5.1.2 定义视图 5.1.3 删除视图 5.1.4 视图的作用 5.1.1 视图概念 视图可以被看成是虚拟表。 视图中的数据不物理地存储在数据库内。 SELECT 语句的结果集构成了视图的内容。 5.1.2 定义视图 语法: CREATE VIEW 视图名 [(视图列名表)] AS 查询语句 定义单源表视图 建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno, Sname, Sage FROM Student WHERE Sdept = 信息系 定义多源表视图 建立信息系选修了‘c01’号课程的学生的视图。 CREATE VIEW V_IS_S1(Sno, Sname, Grade) AS SELECT Student.Sno, Sname, Sage FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = 信息系 AND SC.Cno = c01 在已有视图上定义新视图 建立信息系选修了‘c01’号课程且成绩在90分以上的学生的视图。 CREATE VIEW V_IS_S2 AS SELECT Sno, Sname, Grade FROM V_IS_S1 WHERE Grade = 90 定义带表达式的视图 定义一个反映学生出生年份的视图。 CREATE VIEW BT_S(Sno, Sname, Sbirth) AS SELECT Sno, Sname, 2005-Sage FROM Student 含分组统计信息的视图 定义一个存放每个学生的学号及平均成绩的视图。 CREATE VIEW S_G(Sno, AverageGrade) AS SELECT Sno, AVG(Grade) FROM SC GROUP BY Sno 5.1.3 删除视图 格式: DROP VIEW 视图名 例.删除前边定义的IS_Student视图。 DROP VIEW IS_Student 5.1.4 视图的作用 简化数据查询语句 使用户能从多角度看到同一数据 提高了数据的安全性 提供了一定程度的逻辑独立性 5.2 存储过程 存储过程是 SQL 语句和控制流语句的预编译集合,它以一个名称存储并作为一个单元处理,应用程序可以通过调用的方法执行存储过程。 它使得对数据库的管理和操作更加容易、效率更高。 5.2.1 存储过程概念 SQL 语言是应用程序和 SQL Server 数据库之间的主要编程接口。使用SQL语言编写代码时,可用两种方法存储和执行代码。 一种是在客户端存储代码,并创建向数据库管理系统发送SQL命令(或SQL语句)并处理返回结果的应用程序; 第二种是将这些发送的SQL语句存储在数据库管理系统中,这些存储在数据库管理系统中的SQL语句就是存储过程。 存储过程与其它程序设计语言中的过程很类似 。 使用存储过程的好处 允许模块化程序设计 改善性能 减少网络流量 提供了安全机制 简化管理和操作 5.2.1 创建和执行存储过程 创建存储过程: CREATE PROC [ EDURE ] 存储过程名 [ { @参数名 数据类型 } [ = default ] [OUTPUT] ] AS SQL语句 执行存储过程: [ EXEC [ UTE ] ] 存储过程名 [实参 [, OUTPUT] [, … n] ] 创建不带参数的存储过程 查询计算机系学生的考试成绩,列出学生的姓名、课程名和成绩。 CREATE PROCEDURE student_grade1 AS SELECT Sname, Cname,Grade FROM Student s INNER JOIN sc ON s.sno = sc.sno INNER JOIN course c ON c.cno = sc.cno WHERE Sdept = 计算机系 创建带输入参数的存储过程 查询某个指定系学生的考试情况,列出学
文档评论(0)