数据库编程初步.pptx
《数据库编程初步.pptx》由会员分享,可在线阅读,更多相关《数据库编程初步.pptx(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章学习目标了解基于数据库服务器的数据库编程基础;掌握Transact-SQL编程的基本语句和流程控制方法;理解游标的概念,掌握游标的使用方法;理解存储过程的概念,掌握存储过程的创建和调用方法;理解触发器的概念,掌握DML触发器的使用方法。第1页/共56页本章重点和难点本章学习的重点是掌握数据库编程的基本方法,要求学生能够理解游标、存储过程和触发器的概念,并能够运用Transact-SQL完成相应的编程。本章学习的难点是能够灵活运用游标、存储过程和触发器完成相关的数据库应用开发。第2页/共56页4.1 T-SQL简介 SQL Server使用的语言称作Transact-SQL(简称T-SQL)
2、,它不仅包括基本SQL操作和查询的内容(第3章介绍的关系数据库标准语言SQL),还有一般程序设计的能力。第3页/共56页变量及其说明用DECLARE语句说明内存变量 DECLARE ,.注意,变量名前必须有前缀,以便与关系的属性名相区分 第4页/共56页变量的赋值对变量赋值的命令是 SELECT=,=或SET=或SELECT=,=FROM 前两种格式是直接对变量进行赋值,第三种格式是将SELECT查询的结果赋值给变量。第5页/共56页关于数据类型整数 非整数数字 货币数据类型 字符数据类型 日期和时间数据类型 二进制数据类型 关于Unicode数据类型 特殊数据类型 第6页/共56页运算符与表
3、达式 算术运算符 位运算符 比较运算符 逻辑运算符 字符串运算符 第7页/共56页函数 聚合函数 配置函数 加密函数 游标函数 日期和时间函数 数学函数 n元数据函数n行集函数 n安全函数 n字符串函数 n系统函数 n系统统计函数 第8页/共56页语句 赋值语句 BEGINEND 条件语句 循环语句 EXECUTE语句 WAITFOR语句 PRINT语句 RETURN语句 第9页/共56页思考题 numeric和float数据类型都是非整数类型,它们有什么区别?在使用时要注意哪些问题?money(或smallmoney)数据类型与numeric和float数据类型有什么区别?char和varc
4、har都是字符类型,它们在概念和使用上有哪些区别?什么是Unicode数据类型?讨论T-SQL中的运算符与一般程序设计语言中运算符的异同之处。PRINT语句只能输出单个字符型常量或表达式,如果要输出非字符型表达式应该如何处理?如果要输出多个表达式应该如何处理?第10页/共56页游标(Cursor)什么是游标?为什么需要游标?nSELECT的查询结果是记录的集合,如果需要交互的处理这些记录、或者需要根据这些记录完成对其他信息的处理,则需要把查询结果暂时存储、并能够读取和使用这些信息。第11页/共56页游标的概念游标是查询结果的临时存储定义游标使用游标释放游标第12页/共56页定义游标基本格式 D
5、ECLARE CURSOR FOR 游标可以看作是一个临时存储或临时文件,它的内容就是SELECT查询的结果游标定义的更多解释参见教材第13页/共56页游标的使用打开游标从游标中读记录循环控制遍历游标的所有记录关闭游标释放游标第14页/共56页打开游标 OPEN 第15页/共56页从游标中读记录 基本格式是 FETCH INTO,完整格式参见教材第16页/共56页循环控制遍历游标的所有记录全局变量FETCH_STATUS 一个系统预定义的全局变量、也可以看作是一个系统函数,取值如下:0:FETCH 语句成功;-1:FETCH 语句失败或行不在结果集中;-2:提取的行不存在。循环语句WHILE
6、FETCH_STATUS=0 第17页/共56页关闭游标 CLOSE 第18页/共56页释放游标 DEALLOCATE 第19页/共56页游标概念归纳与程序设计语言中的文件相对照:DECLARE CURSOR相当于说明了一个文件OPEN相当于打开文件FETCH相当于读一条记录CLOSE相当于关闭文件DEALLOCATE语句相当于删除文件。第20页/共56页游标查询处理举例 用游标逐条显示学生信息说明变量说明游标打开游标从游标中读第一条记录到变量WHILE 读成功BEGIN 输出当前变量(记录)的信息 读下一条记录到变量END关闭和释放游标第21页/共56页游标查询处理举例用游标显示学生及其选课
7、的信息(嵌套)说明变量说明学生游标打开学生游标从游标中读第一条学生记录到变量WHILE 读成功BEGIN 输出当前变量(记录)的信息 说明当前学生选课游标 打开选课游标 从游标中读第一条选课记录到变量 WHILE 读成功 BEGIN 输出当前变量(记录)的信息 读下一条选课记录到变量 END 关闭和释放选课游标 读下一条学生记录到变量END关闭和释放学生游标注意内外层都使用全局变量FETCH_STATUS第22页/共56页利用游标进行删除和更新操作 使用游标的UPDATE命令的格式是 UPDATE SET=|NULL,nWHERE CURRENT OF 使用游标的DELETE命令的格式是 DE
8、LETE FROM WHERE CURRENT OF 利用WHERE CURRENT OF 进行的修改或删除只影响表的当前行。第23页/共56页使用游标进行更新的例子 说明变量说明游标打开游标从游标中读第一条记录到变量WHILE 读成功BEGIN 如果满足更新条件 UPDATE WHERE CURRENT OF 读下一条记录到变量END关闭和释放游标第24页/共56页嵌入式SQL 非过程化与过程化必须结合程序才能完成应用,但是就数据查询和数据操作而言还是非过程化的第25页/共56页如何将SQL嵌入到宿主语言中 嵌入识别问题 宿主语言与SQL语言的数据交互问题 宿主语言的单记录与SQL的多记录的
9、问题 第26页/共56页思考题理解游标的概念,讨论游标的使用方法和用途。在SQL Server中全局变量是如何定义的?全局变量FETCH_STATUS的用途是什么?再列举3-4个类似的全局变量,并说明它们的用途。讨论利用游标进行删除和更新操作的处理机制。为什么SQL有时候需要嵌入在程序设计语言中使用?SQL嵌入在程序设计语言中使用时会遇到哪些问题?这些问题是如何解决的?第27页/共56页4.3 存储过程 存储过程(Stored Procedure)源于客户/服务器数据库体系结构,它与传统数据库结构的一个很重要的区别是,在传统的数据库中只存放数据,所有的应用程序都在用户端,都与用户实际运行的应用
10、程序捆绑在一起;而在客户/服务器结构的数据库中,在数据库中还可以存放程序,因为这种程序以数据库对象的形式存储在数据库中,所以称为存储过程。第28页/共56页客户客户/服务器体系结构服务器体系结构客户/服务器体系结构是一种合理配置客户端和服务器端应用负载、充分利用系统资源、使系统服务效率更高的一种应用体系结构。第29页/共56页非客户/服务器应用示意查询在客户端完成查询在客户端完成查询表格30000条记录的表格第30页/共56页客户/服务器应用示意查询在服务器端完成查询在服务器端完成SQL请求返回一条记录第31页/共56页存储过程的概念存储在数据库中的程序T-SQL语句写的程序SQL Serve
11、r 2005以后存储过程还可以是对CLR方法的引用(Microsoft.NET Framework 公共语言运行时)在数据库服务器上运行SQL Server自身的很多功能也是使用存储过程实现的系统存储过程用户可以建立自己的存储过程第32页/共56页存储过程的作用可以避免在网络上传输大量无用的信息或原始数据,只需要传输调用存储过程的指令和数据库服务器返回的处理结果 把完成某一数据库处理的功能设计为存储过程,则可以在各个程序中反复调用,从而减轻程序的编写工作量 可以利用存储过程间接实现一些安全控制功能第33页/共56页存储过程的使用定义存储过程执行存储过程修改存储过程删除存储过程第34页/共56页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 编程 初步
限制150内