第四章-结构化查询语言.ppt

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

*******预处理方式是:先由预处理程序对源程序进行扫描,识别出SQL语句,并处理成宿主语言的函数调用形式;然后再用宿主语言的编译程序把源程序编译成目标程序。通常DBMS制造商提供一个SQL函数定义库,供编译时使用。源程序的预处理和编译的具体过程如下图所示:目标程序宿主语言十嵌入式SQL?预处理程序?宿主语言十函数调用??宿主语言编译程序二、嵌入式SQL的使用规定①为区分SQL语句与宿主语言语句,在所有的SQL语句前必须加上前缀标识“EXECSQL”,并以“ENDEXEC”作为语句结束标志。格式:EXECSQLSQL语句END_EXEC结束标志在不同的宿主语言中是不同的,在C和PASCAL语言程序中规定结束标志不用END_EXEC,而使用分号“;”。②数据库工作单元和主程序工作单元之间的通讯允许嵌入的SQL语句引用宿主语言的程序变量(称为共享变量或称宿主变量)。并规定:?在引用这些变量时必须在这些变量前加冒号“:”作为前缀标识,以示与数据库中变量有区别;?这些变量由宿主语言的程序定义;?由SQL的BEGINDECLARESECTION与ENDDECLARESECTION语句之间说明。而主语言不能引用数据库中的字段变量。其中SQLSTATE是一个特殊的共享变量起着解释SQL语句执行状况的作用,是一个由5个字符组成的字符数组。SQLSTATE=0:表示SQL语句执行成功;SQLSTATE0:表示执行SQL语句时发生的各种特殊情况。譬如“02000”用来表示未找到元组。在执行一个SQL语句后,程序可以根据SQLSTATE的值转向不同的分支,以控制程序的流向。③引入游标机制:将集合操作转换为单元组处理。SQL的执行是面向集合的,一条SQL语句原则上可以产生或处理多条记录。宿主语言是面向记录的,一组主变量一次只能存放一条记录。为此引入游标来协调SQL语言与主语言的不同数据处理方式。三、嵌入式SQL的使用技术1、不涉及游标的嵌入式SQLDML语句情况一:对于INSERT、DELETE和UPDATE语句,只要加上前缀标识“EXECSQL”和结束标志“END_EXEC”,就能嵌入在宿主语言程序中使用。EXECSQLBEGINDECLARESECTIONchargivencno[5],cname[13],tname[9];charSQLSTATE[6];EXECSQLENDDECLARESECTION;scanf(“%s%s%s”,givencno,cname,tname);EXECSQLINSERTINTOC(CNO,CNAME,TNAME)VALUES(:givencno,:cname,:tname);(如何在C语言中说明共享变量)例1:在关系C中插入一门新的课程例2:从关系SC中删除一个学生的所有选课,学生的姓名由共享变量sname提供。EXECSQLBEGINDECLARESECTIONchargivensno[5],sname[9],sdept[11];charSQLSTATE[6];EXECSQLENDDECLARESECTION;scanf(“%s”,sname);EXECSQLDELETEFROMSCWHERESNO=(SELECTSNOFROMSWHERESNAME=:sname);情况二:对于SELECT语句,如果已知查询结果肯定是单元组时,可直接嵌入在主程序中使用,此时在SELECI语句中增加一个INTO子句,指出找到的值应送到相应的共享变量中去。例3:在关系S中根据共享变量givensno的值检索该学生的姓名和所在系:EXECSQLSELECTSNAME,SDEPTINTO:sname,:sdeptFROMSWHERESNO=:givensno;此处sname,sdept,givensno都是共享变量,已在主程序中定义,并用SQL的DEC

文档评论(0)

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

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

1亿VIP精品文档

相关文档