第七章数据库设计与编程内容摘要:
WHERE Sdept=39。 CS39。 六、非 CURRENT形式的 DELETE语句 非 CURRENT形式的 DELETE语句 使用主变量 WHERE子句 非 CURRENT形式的 DELETE语句可以操作多条元组 非 CURRENT形式的 DELETE语句(续) 例 8 某个学生退学了,现要将有关他的所有选课记录删除掉。 假设该学生的姓名已赋给主变量 stdname EXEC SQL DELETE FROM SC WHERE Sno= (SELECT Sno FROM Student WHERE Sname=:stdname)。 七、 INSERT语句 非 CURRENT形式的 INSERT语句 使用主变量 VALUES子句 使用指示变量 VALUES子句 非 CURRENT形式的 INSERT语句一次只能输入一条元组 INSERT语句(续) 例 9 某个学生新选修了某门课程,将有关记录插入 SC表 假设学生的学号已赋给主变量 stdno,课程号已赋给主变量 couno。 gradeid=1。 EXEC SQL INSERT INTO SC(Sno, Cno, Grade) VALUES(:stdno, :couno, :gr:gradeid)。 由于该学生刚选修课程,尚未考试,因此成绩列为空。 所以本例中用指示变量指示相应的主变量为空值。 使用游标的 SQL语句 必须使用游标的 SQL语句 查询结果为多条记录的 SELECT语句 CURRENT形式的 UPDATE语句 CURRENT形式的 DELETE语句 一、 查询结果为多条记录的 SELECT语句 使用游标的步骤 1. 说明游标 2. 打开游标 3. 移动游标指针,然后取当前记录 4. 关闭游标 1. 说明游标 使用 DECLARE语句 语句格式 EXEC SQL DECLARE 游标名 CURSOR FOR SELECT语句。 功能 是一条说明性语句,这时 DBMS并不执行SELECT指定的查询操作。 2. 打开游标 使用 OPEN语句 语句格式 EXEC SQL OPEN 游标名。 功能 打开游标实际上是执行相应的 SELECT语句,把所有满足查询条件的记录从指定表取到缓冲区中 这时游标处于活动状态,指针指向查询结果集中第一条记录之前 3. 移动游标指针,然后取当前记录 使用 FETCH语句 语句格式 EXEC SQL FETCH [[NEXT|PRIOR| FIRST|LAST] FROM] 游标名 INTO 主变量 [指示变量 ] [,主变量 [指示变量 ]]...。 移动游标指针,然后取当前记录(续) 功能 指定方向推动游标指针,然后将缓冲区中的当前记录取出来送至主变量供主语言进一步处理。 NEXT|PRIOR|FIRST|LAST:指定推动游标指针的方式。 NEXT:向前推进一条记录 PRIOR:向回退一条记录 FIRST:推向第一条记录 LAST:推向最后一条记录 缺省值为 NEXT 移动游标指针,然后取当前记录(续) 说明 (1) 主变量必须与 SELECT语句中的目标列表达式具有一一对应关系 (2) FETCH语句通常用在一个循环结构中,通过循环执行 FETCH语句逐条取出结果集中的行进行处理 (3) 为进一步方便用户处理数据,现在一些关系数据库管理系统对 FETCH语句做了扩充,允许用户向任意方向以任意步长移动游标指针 4. 关闭游标 使用 CLOSE语句 语句格式 EXEC SQL CLOSE 游标名。 功能 关闭游标,释放结果集占用的缓冲区及其他资源 说明 游标被关闭后,就不再和原来的查询结果集相联系 被关闭的游标可以再次被打开,与新的查询结果相联系 例题 例 1 查询某个系全体学生的信息(学号、姓名、性别和年龄)。 要查询的系名由用户在程序运行过程中指定,放在主变量 deptname中 ...... ...... EXEC SQL INCLUDE SQLCA。 EXEC SQL BEGIN DECLARE SECTION。 例题(续) ...... /* 说明主变量 deptname,HSno,HSname,HSsex,HSage等 */ ...... ...... EXEC SQL END DECLARE SECTION。 ...... ...... gets(deptname)。 /* 为主变量 deptname赋值 */ ...... 例题(续) EXEC SQL DECLARE SX CURSOR FOR SELECT Sno, Sname, Ssex, Sage FROM Student WHERE SDept=:deptname。 /* 说明游标 */ EXEC SQL OPEN SX /* 打开游标 */ 例题(续) WHILE(1) /* 用循环结构逐条处理结果集中的记录 */ { EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex, :HSage。 /* 将游标指针向前推进一行,然后从结 果集中取当前行,送相应主变量 */ 例题(续) if ( SUCCESS) break。 /* 若所有查询结果均已处理完或出现 SQL语句错误,则退出循环 */ /* 由主语言语句进行进一步处理 */ ...... ...... }。 例题(续) EXEC SQL CLOSE SX。 /* 关闭游标 */ ...... ...... 例题(续) 例 2 查询某些系全体学生的信息。 ...... ...... EXEC SQL INCLUDE SQLCA。 EXEC SQL BEGIN DECLARE SECTION。 ...... /* 说明主变量 deptname,HSno,HSname,HSsex,HSage等 */ ...... ...... 例题(续) EXEC SQL END DECLARE SECTION。 ...... ...... ...... EXEC SQL DECLARE SX CURSOR FOR SELECT Sno, Sname, Ssex, Sage FROM Student WHERE SDept=:deptname。 /* 说明游标 */ 例题(续) WHILE (gets(deptname)!=NULL) /* 接收主变量deptname的值 */ { /* 下面开始处理 deptname指定系的学生信息 , 每次循环中 deptname可具有不同的值 */ EXEC SQL OPEN SX /* 打开游标 */ 例题(续) WHILE (1) { /* 用循环结构逐条处理结果集中的记录 */ EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex, :HSage。 /* 将游标指针向前推进一行,然后从结果集中取当前行,送相应主变量 */ 例题(续)。第七章数据库设计与编程
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
第七章电网的差动保护
阻抗较小 , 因而工频电流可畅通无阻 , 不会影响输电线路正常传输。 并联谐振频率( 50~ 300kHz 它是一个高压电容器 , 电容很小 , 对工频电压呈现很大的阻抗 , 使收发信机与高压输电线路绝缘 , 载频信号顺利通过。 结合电容器 2与连接滤波器 3组成带通滤波器 , 对载频进行滤波。 它是一个可调节的空心变压器,与结合电容器共同组成带通滤波器。 带通滤波器从 线路一侧看入的阻抗
第七章微波滤波器的基本概念与理论
20 • Chebyshev低通原型滤波器 的阶数由下式决定: 0 . 10 . 11 0 1a r c o s h1 0 1a r c o s hAsArLLsn21 • 若给定的是反射损耗 ,或者电压驻波比 ,则换算关系为: RLVSWR 0 . 11 0 l g 1 1 0 RLArL d B 2110 l g 1 1Ar V SW RL dBV SW R