假设已经把将要查询的学生的学号赋给了主变量givensno,将课程号赋给了主变量givencno。 EXEC SQL SELECT Sno,Cno,Grade INTO :Hsno,:Hcno,:Hgrade:Gradeid /*指示变量Gradeid*/ FROM SC WHERE Sno :givensno AND Cno :givencno; 如果Gradeid 0,不论Hgrade为何值,均认为该学生成绩为空值。 2. 非CURRENT形式的增删改语句 在UPDATE的SET子句和WHERE子句中可以使用主变量,SET子句还可以使用指示变量 [例8.4] 修改某个学生选修1号课程的成绩。 EXEC SQL UPDATE SC SET Grade :newgrade /*修改的成绩已赋给主变量:newgrade*/ WHERE Sno :givensno; /*学号赋给主变量:givensno*/ 非CURRENT形式的增删改语句(续) [例8.5] 某个学生新选修了某门课程,将有关记录插入SC表中。假设插入的学号已赋给主变量stdno,课程号已赋给主变量couno。 gradeid -1; /*gradeid为指示变量,赋为负值*/ EXEC SQL INSERT INTO SC Sno,Cno,Grade VALUES :stdno,:couno,:gr :gradeid ; /*:stdno,:couno,:gr为主变量*/ 由于该学生刚选修课程,成绩应为空,所以要把指示变量赋为负值 8.1 嵌入式SQL 8.1.1 嵌入式SQL的处理过程 8.1.2 嵌入式SQL语句与主语言之间的通信 8.1.3 不用游标的SQL语句 8.1.4 使用游标的SQL语句 8.1.5 动态SQL 8.1.4 使用游标的SQL语句 必须使用游标的SQL语句 查询结果为多条记录的SELECT语句 CURRENT形式的UPDATE语句 CURRENT形式的DELETE语句 使用游标的SQL语句(续) 1. 查询结果为多条记录的SELECT语句 2. CURRENT形式的UPDATE和DELETE语句 1. 查询结果为多条记录的SELECT语句 使用游标的步骤 (1)说明游标 (2)打开游标 (3)推进游标指针并取当前记录 (4)关闭游标 (1)说明游标 使用DECLARE语句 语句格式 EXEC SQL DECLARE CURSOR FOR ; 功能 是一条说明性语句,这时关系管理系统并不执行SELECT语句 (2)打开游标 使用OPEN语句 语句格式 EXEC SQL OPEN ; 功能 打开游标实际上是执行相应的SELECT语句,把查询结果取到缓冲区中 这时游标处于活动状态,指针指向查询结果集中的第一条记录 (3)推进游标指针并取当前记录 使用FETCH语句 语句格式 EXEC SQL FETCH INTO [ ] [, [ ]]...; 功能 指定方向推动游标指针,同时将缓冲区中的当前记录取出来送至主变量供主语言进一步处理 (4)关闭游标 使用CLOSE语句 语句格式 EXEC SQL CLOSE ; 功能 关闭游标,释放结果集占用的缓冲区及其他资源 说明 游标被关闭后,就不再和原来的查询结果集相联系 被关闭的游标可以再次被打开,与新的查询结果相联系 2. CURRENT形式的UPDATE语句和DELETE语句 CURRENT形式的UPDATE语句和DELETE语句的用途 非CURRENT形式的UPDATE语句和DELETE语句 面向集合的操作 一次修改或删除所有满足条件的记录 CURRENT形式的UPDATE语句和DELETE语句(续) CURRENT形式的UPDATE语句和DELETE语句的用途(续) 如果只想修改或删除其中某个记录 用带游标的SELECT语句查出所有满足条件的记录 从中进一步找出要修改或删除的记录 用CURRENT形式的UPDATE语句和DELETE语句修改或删除之 UPDATE语句和DELETE语句中要用子句 WHERE CURRENT OF 表示修改或删除的是最近一次取出的记录,即游标指针指向的记录 CURRENT形式的UPDATE语句和DELETE语句(续) 不能使用CURRENT形式的UPDATE语句和DELETE语句 当游标定义中的SELECT语句带有UNION或ORDER BY子句 该SELECT语句相当于定义了一个不可更新的视图 8.1 嵌入式SQL 8.1.1 嵌入式SQL的处理过程 8.1.2 嵌入式SQL语句与主语言之间的通信 8.1.3 不用游标的SQL语句 8.1.4 使用游标的SQL语句 8.1.5 动态SQL 8.1.5 动态SQL 静态嵌入式SQL 静态嵌入式SQL语句能够满足一般要求 无法满足要到执行时才能够确定要提交的SQL语句、查询的条件 动态嵌入式SQL 允许在程序运行过程中临时“组装”SQL语句 支持动态组装SQL语句和动态参数两种形式 动态SQL(续) 1. 使用SQL语句主变量 2. 动态参数 3. 执行准备好的语句(EXECUTE) 1. 使用SQL语句主变量 SQL语句主变量 程序主变量包含的内容是SQL语句的内容,而不是原来保存数据的输入或输出变量 SQL语句主变量在程序执行期间可以设定不同的SQL语句,然后立即执行 使用SQL语句主变量(续) [例8.6] 创建基本表TEST。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23745-4.html
配套组件和运用经验都不充分
那么物价上涨减去利率
草狗一定佩服你