数据库原理8).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库原理8)

第八章 数据库编程 嵌入式SQL(ESQL) 游标 变量 程序流程控制 存储过程 ODBC编程 第一节 嵌入式SQL SQL语言:面向集合的非过程性语言。 而许多事务是过程性的,需要根据不同的条件来执行不同的任务,因此单纯用SQL语言是很难实现的,可以利用高级语言的过程性结构来弥补SQL语言实现复杂应用方面的不足。 高级语言:主语言/宿主语言 一、嵌入式SQL的处理过程 1.嵌入式SQL语句类型 * 可执行SQL语句 - 数据定义 - 数据操纵 - 数据控制 * 说明性SQL语句 2.嵌入式SQL的形式 ESQL中区分SQL语句和主语言的方式: EXEC SQL SQL语句 ; 3.ESQL基本处理过程 二、SQL语句与主语言间的通信 1.SQL通信区 作用:保存描述SQL语句执行后系统工作状态和运行环境的各种数据。 方法和步骤:声明SQL通信区,执行SQL操作,判断状态变量。 通信区标识:SQLCA 状态变量:SQLCODE 声明SQL通信区:EXEC SQL INCLUDE SQLCA ; SQL操作状态示例 SQL执行DELETE操作后,SQLCA中的信息: 成功删除,并有删除的行数 SQLCODE=SUCCESS 无条件删除警告信息 违反数据完整性规则,拒绝删除 没有满足条件的行,一行也没有删除 由于各种原因,执行出错 2.主变量 主变量:主语言程序变量,可分为: 输入主变量:主语言赋值,SQL语句引用。 - 可以指定更新数据库的值 - 可以指定操作数据库的条件 - 可以指定执行的操作 输出主变量:SQL语句赋值,主语言引用。 可以得到SQL语句的结果数据和状态 主变量 一个主变量既可以是输入主变量,也可以是输出主变量;一个主变量可以附带一个任选的指示变量。 主变量和指示变量说明步骤和说明语句: EXEC SQL BEGIN DECLARE SECTION ; …… /* 主变量说明 */ …… /* 指示变量说明 */ EXEC SQL END DECLARE SECTION ; 注:当主变量与数据对象同名时,要在主变量名前加冒号(:)标识。 3.游标 SQL语言是面向集合的,主语言是面向记录的。一组主变量一次只能存放一条记录,因此引入游标的概念,利用游标协调两种处理方式。 游标:系统为用户开设的一个数据缓冲区,用来存放SQL语句执行结果,并内设指针指示数据记录。每个游标有一个名字,用户可以通过游标逐一获取记录并给主变量赋值。 使用游标的步骤和相应语句 ⑴ 定义游标 EXEC SQL DECLARE 游标名 CURSOR FOR SELECT 语句 [FOR {READ ONLY | UPDATE [OF 列名]}]; ⑵ 打开游标 EXEC SQL OPEN 游标名 ; ⑶ 推进游标指针并将当前记录数据放入主变量 EXEC SQL FETCH 游标名 INTO 主变量表 ; ⑷ 关闭游标 EXEC SQL CLOSE 游标名 ; 三、游标的使用 不用游标的SQL语句: 说明性语句 数据定义语句 数据控制语句 查询结果为单记录的SELECT语句 (这时在SELECT语句中使用INTO子句,把查询结果放到主变量中。) 非CURRENT形式的UPDATE语句 非CURRENT形式的DELETE语句 INSERT语句 游标的使用 必须使用游标的SQL语句: 查询结果为多条记录的SELECT语句 CURRENT形式的UPDATE语句 CURRENT形式的DELETE语句 关于CURRENT形式 SQL的UPDATE语句和DELETE语句是面向集合的操作。 当只想修改或删除其中的某些记录,而不是满足条件的所有记录时,需使用带游标的SELECT语句和CURRENT形式的UPDATE和DELETE语句。 CURRENT即当前记录。 CURRENT形式操作步骤 ⑴ 用DECLARE语句说明游标; ⑵ 用SELECT语句查出所有满足条件的记录,其中对修改操作在SELECT语句中要使用FOR UPDATE OF 列名; ⑶ 用OPEN语句打开游标,把所有满足条件的记录从表中取到缓冲区中; ⑷ 用FETCH语句推进游标,把记录从缓冲区中取出送给主变量; ⑸ 找出要修改或删除的记录,删改时在UPDATE和DELETE命令中使用子句WHERE CURRENT OF 游标名; ⑹ 用CLOSE语句关闭游标。 四、建立和关闭数据库连接 嵌入式SQL程序访问数据库前必须先连接数据库,RDBMS根据用户信息对连接请求进行合法性检验,只有通过了身份验证

文档评论(0)

书是爱的奉献 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档