- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库6版讲稿第五章----高级SQL概要
数据库系统概念----数据分析与挖掘 4.4 嵌入式SQL 为什么使用嵌入式SQL? 嵌入式SQL执行过程 需要解决的几个问题 为什么使用嵌入式SQL? 有些操作对于交互式SQL是不可能的任务 SQL的表达能力相比高级语言有一定的限制,有些数据访问要求单纯使用SQL无法完成。一方面,SQL在逐渐增强自己的表达能力(参见习题4.10),另一方面,太多的扩展会导致优化能力及执行效率的降低 非声明性动作 实际的应用系统是非常复杂的,数据库访问只是其中一个部件。有些动作如与用户交互、图形化显示数据等只能用高级语言实现 嵌入式SQL执行过程 需要解决的几个问题 区分SQL语句与C语言语句 嵌入的SQL语句以EXEC SQL开始,以分号(;) 或END_EXEC结束 EXEC SQL delete from PROF where DNO = 10; 需要解决的几个问题 嵌入SQL语句与C语言之间的数据传递 宿主变量 C变量,既可以用在C语句中,也可用在SQL语句中,用来在两者之间传递数据 宿主变量的声明 声明为通常的C变量,并将其放在下列标识语句之间 EXEC SQL BEGIN DECLARE SECTION EXEC SQL END DECLARE SECTION 需要解决的几个问题 EXEC SQL BEGIN DECLARE SECTION int prof_no; char prof_name[30]; int salary; EXEC SQL END DECLARE SECTION 需要解决的几个问题 注:宿主变量出现于SQL语句中时,前面加(:)以区别列名 宿主变量可出现的地方:SQL的数据操纵语句中可出现常数的任何地方,select,fetch等语句的into子句中 示例: EXEC SQL select PNAME , SAL into :prof_name , :salary from PROF where PNO = :prof_no ; 需要解决的几个问题 SQL与主语言之间操作方式的协调 执行方式的差别 SQL:一次一集合 C语言:一次一记录 游标 在查询结果的记录集合中移动的指针 若一个SQL语句返回单个元组,则不用游标 若一个SQL语句返回多个元组,则使用游标 需要解决的几个问题 不需要游标的数据操作 结果是一个元组的select语句 EXEC SQL select PNAME , SAL into :prof_name, :salary from PROF where PNO = :prof_no ; 需要解决的几个问题 insert语句 EXEC SQL insert into PROF values (:prof_no, :prof_name , :salary , :dept_no , : salary) ; delete语句 EXEC SQL delete from PROF where PNO :prof_no ; update语句 EXEC SQL update PROF set SAL = :salary where PNO = : prof_no ; 需要解决的几个问题 需要游标的数据操作 当select语句的结果中包含多个元组时,使用游标可以逐个存取这些元组 活动集:select语句返回的元组的集合 当前行:活动集中当前处理的那一行。游标即是指向当前行的指针 需要解决的几个问题 定义与使用游标的语句 declare 定义一个游标,使之对应一个select语句 declare 游标名 cursor for select语句[for update [of列表名]] for update:该游标可用于对当前行的修改删除 open 打开游标,执行对应的查询,结果集为该游标的活动集 open 游标名 需要解决的几个问题 fetch 在活动集中将游标移到特定的行,并取出该行数据放到相应的宿主变量中 fetch 游标名 into [宿主变量表] close 关闭游标,释放活动集及其所占资源。需要再使用该游标时,执行open语句 close 游标名 需要解决的几个问题 推进游标指针 EXEC SQL FETCH 游标名 INTO 主变量[指示变量][,主变量[指示变量]]... FETCH语句通常用在一个
您可能关注的文档
- 数学第一章简易逻辑概要.ppt
- 数学模型第四版第六章--代数方程与差分方程模型概要.ppt
- 数据中心供电方案设计概要.ppt
- 数据、模型与决策概要.ppt
- 数对表示位置概要.ppt
- 数据交换技术概要.ppt
- 数据交换模式的区分v0.1概要.ppt
- 数据传输光缆线路预算概要.doc
- 数据仓库开发实例概要.ppt
- 数据传输光缆项目概要.ppt
- 多点监督与特征融合校准:目标检测算法的创新与突破.docx
- 南宁市门诊HIV_AIDS患者抑郁状况剖析与影响因素探究.docx
- 医疗过失犯罪中客观归责理论的精准适用与深度解析.docx
- 南宁市低碳经济发展研究.docx
- 清解瘀毒胶囊对脑出血大鼠血红蛋白毒性作用及机制探究.docx
- 内蒙古赤峰市元宝山区农村小学教师培训:现状、问题与突破路径.docx
- 泉州开发区国有资产投资经营有限公司发展战略研究:基于区域经济与市场环境的分析.docx
- 能源利用效率与经济增长方式的深度耦合及中国战略抉择.docx
- 分布式信号波达方向 - 时延联合估计算法的深度剖析与创新探索.docx
- 新媒体环境下大学校园精神传播的创新变革.docx
文档评论(0)