第5章__关系数据库标准语言SQL
删除数据(续) 三种删除方式 删除某一个元组的值 删除多个元组的值 带子查询的删除语句 1. 删除某一个元组的值 [例7] 删除学号为0762101的学生记录。 DELETE FROM Student WHERE Sno=‘0762101; 2. 删除多个元组的值 [例8] 删除C002号课程的所有选课记录。 DELETE FROM Elective WHERE Cno=‘C002; 3. 带子查询的删除语句 例5.56 删除通信工程系的学生记录及其选课记录。 Delete from Elective Where Sno in ( Select Sno From Student where Deptno=(Select Deptno From Department Where Deptname=通信工程系 ) ); Delete from Student Where Deptno in (Select Deptno From Department Where Deptname=通信工程系); * 嵌套查询求解方法(续) 相关子查询 首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询,若WHERE子句返回值为真,则取此元组放入结果表; 然后再取外层表的下一个元组; 重复这一过程,直至外层表全部检查完为止。 引出子查询的谓词 带有IN谓词的子查询 带有比较运算符的子查询 带有ANY或ALL谓词的子查询 带有EXISTS谓词的子查询 不相关子 查询 相关子查询 一、带有IN谓词的子查询 例5.41 查询选修了课程名为“C++”的学生的学号和姓名。 Select Sno,Sname From Student Where Sno in (Select Sno From Elective Where Cno=(Select Cno From Course Where Cname=C++ ) ); 二、带有比较运算符的子查询 当能确切知道内层查询返回单值时,可用比较运算符(,,=,=,=,!=或 )。 与ANY或ALL谓词配合使用 带有比较运算符的子查询(续) 例5.43 查询C001成绩高于张三的学生的学号、姓名和成绩。 Select Student.Sno,Sname,score From Student ,Elective Where Student.Sno=Elective.Sno and Cno=C001 and Score (Select Score From Elective Where Cno=C001 and Sno=( Select Sno From Student Where Sname=张三 ) ); 三、带有ANY或ALL谓词的子查询 谓词语义 ANY:任意一个值 ALL:所有值 带有ANY或ALL谓词的子查询(续) 需要配合使
原创力文档

文档评论(0)