数据库 崔巍课件第4章数据库编程初步

上传人:清晨86****784 文档编号:292152411 上传时间:2022-05-13 格式:PPT 页数:56 大小:308.50KB
返回 下载 相关 举报
数据库 崔巍课件第4章数据库编程初步_第1页
第1页 / 共56页
数据库 崔巍课件第4章数据库编程初步_第2页
第2页 / 共56页
数据库 崔巍课件第4章数据库编程初步_第3页
第3页 / 共56页
数据库 崔巍课件第4章数据库编程初步_第4页
第4页 / 共56页
数据库 崔巍课件第4章数据库编程初步_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《数据库 崔巍课件第4章数据库编程初步》由会员分享,可在线阅读,更多相关《数据库 崔巍课件第4章数据库编程初步(56页珍藏版)》请在金锄头文库上搜索。

1、第4章 数据库编程初步 一般用开发工具开发数据库应用,实际上在数据库管理系统内部也支持数据处理编程功能,本章以SQL Server为背景介绍数据库编程的一些基本内容。 北京信息科技大学本章学习目标n了解基于数据库服务器的数据库编程基础;n掌握Transact-SQL编程的基本语句和流程控制方法;n理解游标的概念,掌握游标的使用方法;n理解存储过程的概念,掌握存储过程的创建和调用方法;n理解触发器的概念,掌握DML触发器的使用方法。数据库应用与设计北京信息科技大学本章重点和难点n本章学习的重点是掌握数据库编程的基本方法,要求学生能够理解游标、存储过程和触发器的概念,并能够运用Transact-S

2、QL完成相应的编程。n本章学习的难点是能够灵活运用游标、存储过程和触发器完成相关的数据库应用开发。 数据库应用与设计北京信息科技大学4.1 T-SQL简介 nSQL Server使用的语言称作Transact-SQL(简称T-SQL),它不仅包括基本SQL操作和查询的内容(第3章介绍的关系数据库标准语言SQL),还有一般程序设计的能力。 数据库应用与设计北京信息科技大学变量及其说明n用DECLARE语句说明内存变量 DECLARE , . n注意,变量名前必须有前缀,以便与关系的属性名相区分 数据库应用与设计北京信息科技大学变量的赋值n对变量赋值的命令是 SELECT =,= n或SET =n

3、或SELECT =,= FROM n前两种格式是直接对变量进行赋值,第三种格式是将SELECT查询的结果赋值给变量。 数据库应用与设计北京信息科技大学关于数据类型n整数 n非整数数字 n货币数据类型 n字符数据类型 n日期和时间数据类型 n二进制数据类型 n关于Unicode数据类型 n特殊数据类型 数据库应用与设计北京信息科技大学运算符与表达式 n算术运算符 n位运算符 n比较运算符 n逻辑运算符 n字符串运算符 数据库应用与设计北京信息科技大学函数 n聚合函数 n配置函数 n加密函数 n游标函数 n日期和时间函数 n数学函数 n元数据函数n行集函数 n安全函数 n字符串函数 n系统函数 n

4、系统统计函数 数据库应用与设计北京信息科技大学语句 n赋值语句 nBEGINEND n条件语句 n循环语句 nEXECUTE语句 nWAITFOR语句 nPRINT语句 nRETURN语句 数据库应用与设计北京信息科技大学思考题 nnumeric和float数据类型都是非整数类型,它们有什么区别?在使用时要注意哪些问题?nmoney(或smallmoney)数据类型与numeric和float数据类型有什么区别?nchar和varchar都是字符类型,它们在概念和使用上有哪些区别?n什么是Unicode数据类型?n讨论T-SQL中的运算符与一般程序设计语言中运算符的异同之处。nPRINT语句只

5、能输出单个字符型常量或表达式,如果要输出非字符型表达式应该如何处理?如果要输出多个表达式应该如何处理?数据库应用与设计北京信息科技大学游标(Cursor)n什么是游标?n为什么需要游标?nSELECT的查询结果是记录的集合,如果需要交互的处理这些记录、或者需要根据这些记录完成对其他信息的处理,则需要把查询结果暂时存储、并能够读取和使用这些信息。数据库应用与设计北京信息科技大学游标的概念n游标是查询结果的临时存储n定义游标n使用游标n释放游标数据库应用与设计北京信息科技大学定义游标n基本格式 DECLARE CURSOR FOR n游标可以看作是一个临时存储或临时文件,它的内容就是SELECT查

6、询的结果n游标定义的更多解释参见教材数据库应用与设计北京信息科技大学游标的使用n打开游标n从游标中读记录n循环控制遍历游标的所有记录n关闭游标n释放游标数据库应用与设计北京信息科技大学打开游标 nOPEN 数据库应用与设计北京信息科技大学从游标中读记录 n基本格式是 FETCH INTO , n完整格式参见教材数据库应用与设计北京信息科技大学循环控制遍历游标的所有记录n全局变量FETCH_STATUS n一个系统预定义的全局变量、也可以看作是一个系统函数,取值如下: n0:FETCH 语句成功;n-1:FETCH 语句失败或行不在结果集中;n-2:提取的行不存在。n循环语句nWHILE FET

7、CH_STATUS=0 数据库应用与设计北京信息科技大学关闭游标 nCLOSE 数据库应用与设计北京信息科技大学释放游标 nDEALLOCATE 数据库应用与设计北京信息科技大学游标概念归纳n与程序设计语言中的文件相对照:nDECLARE CURSOR相当于说明了一个文件nOPEN相当于打开文件nFETCH相当于读一条记录nCLOSE相当于关闭文件nDEALLOCATE语句相当于删除文件。 数据库应用与设计北京信息科技大学游标查询处理举例 n用游标逐条显示学生信息说明变量说明游标打开游标从游标中读第一条记录到变量WHILE 读成功BEGIN 输出当前变量(记录)的信息 读下一条记录到变量END

8、关闭和释放游标数据库应用与设计北京信息科技大学游标查询处理举例n用游标显示学生及其选课的信息(嵌套)说明变量说明学生游标打开学生游标从游标中读第一条学生记录到变量WHILE 读成功BEGIN 输出当前变量(记录)的信息 说明当前学生选课游标 打开选课游标 从游标中读第一条选课记录到变量 WHILE 读成功 BEGIN 输出当前变量(记录)的信息 读下一条选课记录到变量 END 关闭和释放选课游标 读下一条学生记录到变量END关闭和释放学生游标注意内外层都使用全局变量FETCH_STATUS数据库应用与设计北京信息科技大学利用游标进行删除和更新操作 n使用游标的UPDATE命令的格式是 UPDA

9、TE SET =|NULL,nWHERE CURRENT OF n使用游标的DELETE命令的格式是 DELETE FROM WHERE CURRENT OF n利用WHERE CURRENT OF 进行的修改或删除只影响表的当前行。数据库应用与设计北京信息科技大学使用游标进行更新的例子 说明变量说明游标打开游标从游标中读第一条记录到变量WHILE 读成功BEGIN 如果满足更新条件 UPDATE WHERE CURRENT OF 读下一条记录到变量END关闭和释放游标数据库应用与设计北京信息科技大学嵌入式SQL n非过程化与过程化n必须结合程序才能完成应用,但是就数据查询和数据操作而言还是非

10、过程化的数据库应用与设计北京信息科技大学如何将SQL嵌入到宿主语言中 n嵌入识别问题 n宿主语言与SQL语言的数据交互问题 n宿主语言的单记录与SQL的多记录的问题 数据库应用与设计北京信息科技大学思考题n理解游标的概念,讨论游标的使用方法和用途。 n在SQL Server中全局变量是如何定义的?全局变量FETCH_STATUS的用途是什么?再列举3-4个类似的全局变量,并说明它们的用途。n讨论利用游标进行删除和更新操作的处理机制。n为什么SQL有时候需要嵌入在程序设计语言中使用?SQL嵌入在程序设计语言中使用时会遇到哪些问题?这些问题是如何解决的? 数据库应用与设计北京信息科技大学4.3 存

11、储过程 n存储过程(Stored Procedure)源于客户/服务器数据库体系结构,它与传统数据库结构的一个很重要的区别是,在传统的数据库中只存放数据,所有的应用程序都在用户端,都与用户实际运行的应用程序捆绑在一起;而在客户/服务器结构的数据库中,在数据库中还可以存放程序,因为这种程序以数据库对象的形式存储在数据库中,所以称为存储过程。 数据库应用与设计北京信息科技大学客户/ 服务器体系结构n客户/服务器体系结构是一种合理配置客户端和服务器端应用负载、充分利用系统资源、使系统服务效率更高的一种应用体系结构。数据库应用与设计北京信息科技大学非客户/服务器应用示意n查询在客户端完成查询在客户端完

12、成查询表格30000条记录的表格数据库应用与设计北京信息科技大学客户/服务器应用示意n查询在服务查询在服务器端完成器端完成SQL请求返回一条记录数据库应用与设计北京信息科技大学存储过程的概念n存储在数据库中的程序nT-SQL语句写的程序nSQL Server 2005以后存储过程还可以是对CLR方法的引用(Microsoft .NET Framework 公共语言运行时) n在数据库服务器上运行nSQL Server自身的很多功能也是使用存储过程实现的系统存储过程n用户可以建立自己的存储过程数据库应用与设计北京信息科技大学存储过程的作用n可以避免在网络上传输大量无用的信息或原始数据,只需要传输

13、调用存储过程的指令和数据库服务器返回的处理结果 n把完成某一数据库处理的功能设计为存储过程,则可以在各个程序中反复调用,从而减轻程序的编写工作量 n可以利用存储过程间接实现一些安全控制功能数据库应用与设计北京信息科技大学存储过程的使用n定义存储过程n执行存储过程n修改存储过程n删除存储过程数据库应用与设计北京信息科技大学定义存储过程nparameter:给出参数名(注意需要使用做前缀)ndata_type:指出参数的数据类型nVARYING:指定作为输出参数支持的结果集,该参数由存储过程动态构造,其内容可能发生改变,仅适用于cursor(游标)类型的参数。n= default:给出参数的默认值

14、,该值必须是常量或NULL,如果过程中使用了带LIKE 关键字的参数,则可包含通配符%、_、 和 。nOUT | OUTPUT:指示参数是输出参数。nsql_statement:存储过程所要执行的SQL语句,它可以是一组SQL语句,可以包含流程控制语句等。CREATE PROCEDURE schema_name.procedure_name parameter data_type VARYING = default OUT | OUTPUT , AS sql_statement 数据库应用与设计北京信息科技大学注意事项n创建存储过程通常是在数据库设计和开发阶段完成的n存储过程可以嵌套,即在一个

15、存储过程中可以调用另外一个存储过程n存储过程一般用来完成数据查询和数据处理操作n在存储过程中不可以使用创建数据库对象的语句(如CREATE TABLE等各种CREATE语句)。 数据库应用与设计北京信息科技大学执行存储过程 nreturn_status:用于存放存储过程返回的状态。这个变量在执行存储过程前必须说明过。nprocedure_name:要执行或调用的存储过程名。nparameter:存储过程中定义的参数。nvalue :传递给存储过程的参数值。如果参数名称没有指定,参数值必须以在存储过程中定义的顺序提供。如果在存储过程中定义了默认值,则可以不必指定参数。nvariable :用来存

16、储参数或返回参数的变量。nOUTPUT:说明是输出参数,用于从存储过程返回值。使用游标变量作为参数时必须使用该关键字。 EXECUTE return_status = schema_name.procedure_name parameter = value | variable OUTPUT ,.n 数据库应用与设计北京信息科技大学修改存储过程n命令是ALTER PROCEDURE n相当于先删除旧存储过程,再建立新存储过程,所以语法格式与CREATE PROCEDURE相同。数据库应用与设计北京信息科技大学删除存储过程DROP PROCEDURE schema_name.procedure_name 数据库应用与设计北京信息科技大学存储过程应用举例n例4-4. 使用简单过程n查询课程信息(课程名称、学时、课程性质和责任教师的姓名) n例4-5. 使用带有参数的简单过程 n返回指定类型课程的信息 n例4-6. 使用带有参数和返回值的简单过程 n查询指定课程大于指定成绩的学生人数,查询结果通过RETURN语句返回 数据库应用与设计北京信息科技大学存储过程应用举例n例4-7. 使用带有通配

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号