第八章 数据库编程.pdf
《第八章 数据库编程.pdf》由会员分享,可在线阅读,更多相关《第八章 数据库编程.pdf(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库系统概论数据库系统概论数据库系统概论An Introduction to Database System第八章 数据库编程第八章 数据库编程数据库系统概论第八章 数据库编程第八章 数据库编程8.1 嵌入式嵌入式SQL8.2 存储过程存储过程8.3 ODBC编程编程数据库系统概论8.1 嵌入式嵌入式SQL?SQL语言提供了两种不同的使用方式:语言提供了两种不同的使用方式:交互式交互式嵌入式嵌入式?为什么要引入嵌入式为什么要引入嵌入式SQLSQL语言是非过程性语言语言是非过程性语言事务处理应用需要高级语言事务处理应用需要高级语言?这两种方式细节上有差别,在程序设计的环境下,这两种方式细节上有
2、差别,在程序设计的环境下,SQL语句要做某些必要的扩充(语句要做某些必要的扩充(ESQL)例如,将学生成绩从百分制改为等级制:例如,将学生成绩从百分制改为等级制:90-100为为A,80-89为为B70-79为为C,60-69为为D0-59为为E数据库系统概论嵌入式嵌入式SQL的处理过程的处理过程?嵌入式嵌入式SQL是将是将SQL语句嵌入程序设计语言中语句嵌入程序设计语言中?主语言主语言被嵌入的程序设计语言,如被嵌入的程序设计语言,如C、C+、Java,称为宿主语言,简称主语言。,称为宿主语言,简称主语言。?处理过程处理过程预编译方法预编译方法数据库系统概论嵌入式嵌入式SQL的处理过程(续)的
3、处理过程(续)主语言程序含主语言程序含ESQL语句语句RDBMS的预处理程序的预处理程序ESQL语句转换为函数调用语句转换为函数调用主语言编译程序主语言编译程序目标语言程序目标语言程序ESQL基本处理过程数据库系统概论嵌入式嵌入式SQL小结小结?什么是嵌入式SQL什么是嵌入式SQL?为什么要引入嵌入式SQL为什么要引入嵌入式SQL?处理过程处理过程数据库系统概论8.2 存储过程存储过程?SQL-invoked routines(SQL99):):存储过程存储过程(SQL-invoked procedure)函数函数(SQL-invoked function)?PL/SQL:是编写存储过程的一种
4、过程语言是编写存储过程的一种过程语言SQL的扩展的扩展增加了增加了过程化过程化语句功能语句功能基本结构是块基本结构是块?块之间可以互相嵌套块之间可以互相嵌套?每个块完成一个逻辑操作每个块完成一个逻辑操作数据库系统概论一、一、PL/SQL的块结构的块结构?PL/SQL块的基本结构:块的基本结构:1.定义部分定义部分DECLARE -变量、常量、游标、异常等变量、常量、游标、异常等?定义的变量、常量等只能在该基本块中使用定义的变量、常量等只能在该基本块中使用?当基本块执行结束时,定义就不再存在当基本块执行结束时,定义就不再存在数据库系统概论PL/SQL的块结构(续)的块结构(续)?PL/SOL块的
5、基本结构块的基本结构(续续):2.执行部分执行部分BEGIN-SQL语句、语句、PL/SQL的流程控制语句的流程控制语句EXCEPTION-异常处理部分异常处理部分END;数据库系统概论二、控制结构二、控制结构?PL/SQL 流程控制:流程控制:条件控制语句条件控制语句循环控制语句循环控制语句错误处理错误处理数据库系统概论控制结构(续)控制结构(续)?条件控制语句条件控制语句IF-THEN,IF-THEN-ELSE和嵌套的和嵌套的IF语句语句?循环控制语句循环控制语句LOOP,WHILE-LOOP和和FOR-LOOP?错误处理:错误处理:如果如果PL/SQL在执行时出现异常,则应该让程序在产生
6、异在执行时出现异常,则应该让程序在产生异常常的语句处停下来,根据异常的类型去执行异常处理语句的语句处停下来,根据异常的类型去执行异常处理语句SQL标准对数据库服务器提供什么样的异常处理做出了建议,要求标准对数据库服务器提供什么样的异常处理做出了建议,要求PL/SQL管理器提供完善的异常处理机制管理器提供完善的异常处理机制数据库系统概论PL/SQL 流程控制示例:流程控制示例:在在SQLServer2005中新建查询,执行下面的程序段中新建查询,执行下面的程序段declare i intselect i=1while i=5beginprint 第第+cast(i as varchar(1)+次
7、循环次循环select i=i+1end数据库系统概论三、存储过程三、存储过程?存储过程存储过程:由:由PL/SQL语句书写的过程,经编译和优化后存储在数据库服务器中,使用时只要调用即可。语句书写的过程,经编译和优化后存储在数据库服务器中,使用时只要调用即可。?存储过程的优点:存储过程的优点:1.运行效率高运行效率高2.降低了客户机和服务器之间的通信量降低了客户机和服务器之间的通信量3.方便实施企业规则方便实施企业规则数据库系统概论?存储过程的用户接口:存储过程的用户接口:1.创建存储过程创建存储过程2.执行存储过程执行存储过程3.删除存储过程删除存储过程数据库系统概论?CREATE Proc
8、edure 过程名(参数过程名(参数1,参数,参数2,.)AS;?过程名:数据库服务器合法的对象标识过程名:数据库服务器合法的对象标识?参数列表:用名字来标识调用时给出的参数值,必须指定值的数据类型。参数也可以定义输入参数、输出参数或输入参数列表:用名字来标识调用时给出的参数值,必须指定值的数据类型。参数也可以定义输入参数、输出参数或输入/输出参数。默认为输入参数。输出参数。默认为输入参数。?过程体:是一个过程体:是一个。包括声明部分和可执行语句部分。包括声明部分和可执行语句部分1.创建存储过程:创建存储过程:数据库系统概论例例1在在SQLServer2005中创建存储过程,统计某门课程的平均
9、成绩,新建查询,执行下面的命令。中创建存储过程,统计某门课程的平均成绩,新建查询,执行下面的命令。CREATE PROCEDURE dbo.avggrade cno varchar(20)ASdeclare counter intdeclare myavg floatselect counter=count(*)from scwhere cno=cnoif(counter=0)print cno+-+没有该课程的选课记录!没有该课程的选课记录!elsebeginselect myavg=avg(grade)from scwhere cno=cnoprint cno+-+(cast(myavg
10、as varchar(20)end数据库系统概论?CALL/PERFORM/EXEC Procedure 过程名过程名(参数参数1,参数,参数2,.);?在在PL/SQL中,数据库服务器支持在过程体中调用其他存储过程中,数据库服务器支持在过程体中调用其他存储过程2.执行存储过程:执行存储过程:数据库系统概论?例如:新建查询,调用存储过程例如:新建查询,调用存储过程avggrade,计算,计算2号课程的平均成绩号课程的平均成绩exec avggrade 2?例如:调用存储过程例如:调用存储过程avggrade,计算,计算1-5号课程的平均成绩号课程的平均成绩declare i intselect
11、 i=1while i=5beginexec avggrade iselect i=i+1end数据库系统概论DROP PROCEDURE 过程名过程名3.删除存储过程删除存储过程数据库系统概论四、游标(四、游标(cursor)?游标游标游标是系统为用户开设的一个数据缓冲区,存放游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果语句的执行结果每个游标区都有一个名字每个游标区都有一个名字用户可以用用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理数据库系统概论游标(续)游标(续)?为什么要使用游标为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八章 数据库编程 第八 数据库 编程
限制150内