生年龄置NULL值Sageid1EXECSQLUPDATEStude
tSETSageRaiseSageidWHERESdeptCS二、非CURRENT形式的增删改语句将指示变量Sageid赋一个负值后,无论主变量Raise为何值,DBMS都会将CS系所有记录的年龄属性置空值。它等价于:EXECSQLUPDATEStude
tSETSageNULLWHERESdeptCS二、非CURRENT形式的增删改语句非CURRENT形式的DELETE语句使用主变量WHERE子句非CURRENT形式的DELETE语句可以操作多条元组二、非CURRENT形式的增删改语句例6某个学生退学了,现要将有关他的所有选课记录删除掉。假设该学生的姓名已赋给主变量std
ameEXECSQLDELETEFROMSCWHERES
oSELECTS
oFROMStude
tWHERES
amestd
ame二、非CURRENT形式的增删改语句非CURRENT形式的INSERT语句使用主变量VALUES子句使用指示变量
fVALUES子句非CURRENT形式的INSERT语句一次只能输入一条元组二、非CURRENT形式的增删改语句例7某个学生新选修了某门课程,将有关记录插入SC表假设学生的学号已赋给主变量std
o,课程号已赋给主变量cou
o。gradeid1EXECSQLINSERTINTOSCS
oC
oGradeVALUESstd
ocou
ogrgradeid由于该学生刚选修课程,尚未考试,因此成绩列为空。所以本例中用指示变量指示相应的主变量为空值。81嵌入式SQL811嵌入式SQL的处理过程812嵌入式SQL语句与主语言之间的通信813不用游标的SQL语句814使用游标的SQL语句815动态SQL814使用游标的SQL语句必须使用游标的SQL语句查询结果为多条记录的SELECT语句CURRENT形式的UPDATE语句CURRENT形式的DELETE语句一、查询结果为多条记录的SELECT语句使用游标的步骤1说明游标2打开游标3移动游标指针,然后取当前记录4关闭游标1说明游标使用DECLARE语句语句格式EXECSQLDECLARE游标名CURSORFORSELECT语句功能是一条说明性语句,这时DBMS并不执行SELECT指定的查询操作。2打开游标使用OPEN语句语句格式EXECSQLOPEN游标名功能打开游标实际上是执行相应的SELECT语句,把所有满足查询条件的记录从指定表取到缓冲区中
f这时游标处于活动状态,指针指向查询结果集中第一条记录之前3移动游标指针,然后取当前记录使用FETCH语句语句格式EXECSQLFETCHNEXTPRIORFIRSTLASTFROM游标名INTO主变量指示变量主变量指示变量移动游标指针,然后取当前记录功能指定方向推动游标指针,然后将缓冲区中的当前记录取出来送至主变量供主语言进一步处理。NEXTPRIORFIRSTLAST:指定推动游标指针的方式。NEXT:向前推进一条记录PRIOR:向回退一条记录FIRST:推向第一条记录LAST:推向最r