sql系统环境.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 SQL系统环境 本章主要讨论数据库的设计步骤以及每个步骤用到的方法。 数据库的设计主要有四个步骤:需求分析、概念设计、逻辑设计和物理设计。 本章的主要知识点包括: 学习要点1、嵌入式SQL 学习要点2、有关事物的嵌入式SQL 学习要点3、SQL环境 学习要点4、数据库的完整性 学习要点5、SQL中的安全和用户权限 学习要点1、嵌入式SQL 1、什么是嵌入式SQL 当一个程序既要访问数据库,又要处理数据时,把SQL语言嵌入程序设计语言即宿主语言中,将SQL语言访问数据库的功能和宿主语言的数据处理功能相结合,是目前解决该问题的最有效途径。这样使用的SQL称为嵌入式SQL。 2、如何实现嵌入式SQL 对于不同的DBMS和宿主语言,实现嵌入式SQL的方法基本相同,只是在一些特殊的地方略有差异。实现嵌入式SQL语言主要是实现说明部分的嵌入和执行部分的嵌入。 以SQL嵌入C语言为例说明实现嵌入式SQL的方法。 说明部分 C语言和SQL语言之间是通过共享变量来进行数据的传送。 共享变量是由宿主语言程序定义、用SQL的DECLARE语句说明,以后可在SQL语句中引用的宿主语言变量。 共享变量需用以“EXEC SQL ”为前缀的说明语句说明,在说明语句的结尾加“;”。 在SQL语句中引用共享变量时,每个共享变量前要加“:”。 在共享变量中,有一个系统定义的特殊变量,称为SQLSTATE。在每执行一个SQL语句时,都要返回一个SQLSTATE代码,来表示这个SQL语句是否执行成功等情况。 当SQLSTATE为全零时,表示SQL语句执行成功; 当SQLSTATE为“02000”时,表示SQL语句已执行,但未找到元组。 所有SQL语句中用到的共享变量,除系统定义的(例如SQLSTATE)以外,都必须在宿主程序中进行说明。说明语句的开头行为: EXEC SQL BEGIN DECLARE SECTION; 说明语句的结束行为: EXEC SQL END DECLARE SECTION; 在一个说明语句中定义几个共享变量,它们都是按照C语言的数据类型和格式进行定义的。 EXEC SQL BEGIN DECLARE SECTION; char sno[6],sname[20]; int sage; char SQLSTATE[6]; EXEC SQL END DECLARE SECTION; 执行部分 插入语句的格式为: EXEC SQL INSERT INTO Student (StudentNo,StudentName) VALUES (:sno, :sname); 修改语句的格式为: EXEC SQL UPDATE Student SET (StudentName=:sname,StudentAge=:sage) WHERE StudentNo=:sno; 删除语句的格式为: EXEC SQL DELETE FROM StudentCourse WHERE StudentNo= (SELECT StudentNo FROM Student WHERE StudentName=:sname); 查询语句: 当查询的结果只有一个元组时, EXEC SQL SELECT StudentName,StudentDept INTO :sname,:sdept FROM Student WHERE StudentNo=:sno; 当查询的结果有多个元组时,需采用涉及到游标的查询方法。 3、使用游标的SQL编程 利用游标进行查询需要四种语句:说明游标语句、打开游标语句、推进语句和关闭游标语句。 分析学生成绩的分布情况。首先从StudentCourse中取出每个元组的Grade;其次设置游标scCursor复盖这些元组;然后打开游标,使之处于初始位置;随后,推进游标,取出一个单分量元组放入共享变量grade;接着,确定该成绩属于哪一段,并在相应的统计上加1;不断推进游标,重复上述统计过程,直到元组全部取完,再关闭游标;最后打印统计结果。 举例: 假设分析学生成绩的分布情况,把统计结果划分为11段:0-9,10-19,20-29……90-99,100。 首先从StudentCourse中取出每个元组的Grade;其次设置游标scCursor复盖这些元组;然后打开游标,使之处于初始位置;随后,推进游标,取出一个单分量元组放入共享变量grade;接着,确定该成绩属于哪一段,并在相应的统计上加1;不断推进游标,重复上述统计过程,直到元组全部取完,再关闭游标;最后打印统计结果。 程序如下: #define NO-TUPLE !(strcmp(SQLSTATE,02000)) void gradeSection() { int i,section,c

文档评论(0)

kelly + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档