网站大量收购独家精品文档,联系QQ:2885784924

第八章SQL的系统特征.ppt

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

第八章 SQL 的系统特征 本章讨论如何将 SQL 应用到一个完整的编程环境中去。 编程环境中的 SQL 模式中的存储过程 SQL 环境 Delphi 数据库连接 Java 数据库连接 SQL 中的事务 安全性和用户授权 8.1 编程环境中的 SQL 数据库应用系统为何需要其它编程语言: 一个数据库仅为一个特定环境提供共享的数据资源; 众多用户不可能在客户端直接使用 SQL 语言来操作数据库; 许多前台编程语言可连接和操作数据库。Java, PowerBuilder, Delphi, C/C++, VB… 如何构建一个相对完整的数据库应用环境: 对于简单的应用系统,使用单层 C/S 结构; 对于复杂的应用系统,使用多层 C/S,或 B/S结构。 8.1 编程环境中的 SQL 8.1 编程环境中的 SQL 8.1 编程环境中的 SQL 匹配失衡问题: SQL 语言是非过程化的;一条语句可作用于多个数据集合。 传统语言是过程性;要处理一个数据集合需要多条语句的循环和判断。 SQL/ 宿主语言接口: 定义共享变量,Declare Section。 使用嵌入式 SQL,Select … into … 。 加入预编译指令 EXEC SQL。 使用 SQLSTATE 变量。 使用游标 ( 光标 CURSOR )。 8.1 编程环境中的 SQL 建立和使用游标的步骤: 游标说明 DECLARE 游标名 [SCROLL] CURSOR FOR SELECT … 打开游标 OPEN 游标名 推进 FETCH { NEXT | PRIOR | FIRST | LAST | RELATIVE n | ABSOLUTE n } FROM 游标名 INTO @变量名, … @@FETCH_STATUS=0 表示正常。 更新数据 { UPDATE | DELETE } table WHERE CURRENT OF 游标名 关闭游标 CLOSE 游标名 8.2 模式中的存储过程 存储过程 ( stored procedure ) 与函数: 在数据库中存储的一组 SQL 指令,有唯一命名,供应用程序调用。 过程的优势: 标准化;高效率;高安全性。 创建过程: 8.2 模式中的存储过程 例如:SQL Server 中的存储过程 Create procedure new_dept( @id integer, @dname char(40), @head char(10) ) As begin insert into department(deptid, deptname, headerid) values(@id, @dname, @head) end 过程中的参数默认是输入型, 可以指定 OUTPUT 表示输入输出型。函数中的参数只可采用输入型。 局部变量说明:DECLARE @var type 扩充的 SQL 语句 Transact-SQL ,包括变量定义,条件 IF…ELSE… ,循环 WHILE 等流程控制语句。 函数中使用 RETURN 语句返回函数值。 8.2 模式中的存储过程 如何调用过程? EXEC 过程名 @参数=值 例如: EXEC new_dept @id=3, @dname=北京代理, @head=null 或 EXEC new_dept 3, 北京代理, null 如何修改过程? Alter procedure new_dept … 如何删除过程? Drop procedure new_dept; 过程中如何返回计算结果? 单个结果值可用 OUTPUT 参量返回。 函数中使用 Return 子句返回一个或一组结果值。 8.2 模式中的存储过程 例如: 给定某种商品货号 prodid,计算其最高销售单价 maxp ( OUTPUT )。 Create Procedure maxPrice( @pid char(20), @maxp numeric(12,2) OUTPUT ) AS begin Select @ maxp=max(singlecost) From salesitem Where prodid = @pid end 下面语句在 SQL 中完成调用。 Declare @maxp Numeric(12,2); Exec maxPrice TV9475, @maxp;

文档评论(0)

shiyouguizi + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档