第7章-数据库查询.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例7-54】在teaching中将13级计算机专业张明明选修的C001号课的成绩改为92分。 方法一:使用SELECT子句 UPDATE sc SET score=92 WHERE cno=C001 AND sno=(SELECT sno FROM student WHERE sname=张明明 AND grade=13级 AND specielty=计算机) 方法二:使用JOIN内连接 UPDATE sc SET score=92 FROM sc JOIN student ON student.sno=sc.sno WHERE sno=C001 AND sname=‘张明明’ AND grade= 13级 AND specialty=计算机 7.7.3 在DELETE语句中使用SELECT子句 在DELETE语句中使用SELECT子句可以将子查询的结果作为删除数据的条件。 DELETE语句中使用SELECT子句的语法形式为: DELETE [FROM] table_name [WHERE {condition_expression}] 其中,condition_expression中包含SELECT子句,SELECT子句要写在圆括号中。 【例7-55】在teaching中将1302001号学生选修的“操作系统”课删除。 DELETE sc WHERE sno=‘1302001 AND cno=(SELECT cno FROM course WHERE cname=操作系统) 【例7-56】在teaching中将13级计算机专业张明明选修的“C001”号课删除。 方法一:使用SELECT子句 DELETE sc WHERE cno=‘C001’ AND sno=(SELECT sno FROM student WHERE sname=‘张明明’ AND grade=‘13级’ AND specialty=‘计算机) 方法二:使用JOIN内连接 DELETE sc FROM sc JOIN student ON student.cno=sc.cno WHERE cno=C001 AND sname=‘张明明’ AND grade=‘13级’ AND specialty=‘计算机’ 7.5.1 无关子查询(嵌套子查询)只执行一次 无关子查询的执行不依赖于外部查询。无关子查询在外部查询之前执行,然后返回数据供外部查询使用,无关子查询中不包含对于外部查询的任何引用。 1. 比较子查询 使用子查询进行比较测试时,通过等于(=)、不等于()、小于()、大于()、小于或等于(=)以及大于或等于(=)等比较运算符,将一个表达式的值与子查询返回的单值进行比较。如果比较运算的结果为TRUE,则比较测试也返回TRUE。 【例7-35】在teaching中查询与“沈艳”在同一个专业学习的学生的学号、姓名和专业。 USE teaching SELECT sno, sname, specialty FROM student WHERE specialty= (SELECT specialty FROM student WHERE sname= 沈艳) 例7-35可以用自连接来实现,程序如下: USE teaching SELECT a.sno, a.sname, a. specialty FROM student a, student b WHERE a. specialty=b. specialty AND b. sname=沈艳 需要特别指出的是,子查询的SELECT语句不能使用ORDER BY子句,ORDER BY子句只能对最终查询结果排序。 【例7-36】在teaching中查询C001号课的考试成绩比“郑丽”高的学生的学号和姓名。 USE teaching SELECT student.sno,sname FROM student,sc WHERE student.sno = sc.sno and cno=C001 AND score(SELECT score FROM sc WHERE cno=C001AND sno=(SELECT sno FROM student WHERE sname =郑丽)) 2. SOME、ANY、ALL和IN子查询 ALL和ANY操作符的常见用法是结合一个相对比较操作符对一个数据列子查询的结果进行测试。它们测试比较值是否与子查询所返回的全部或一部分值匹配。比如说,如果比较值小于或等于子查询所返回的每一个值,= ALL将是true;只要比较值小于或等于子查询所返回的任何一个值,= ANY将是true。SOME是ANY的一个同义词。 【例7-37】查询te

您可能关注的文档

文档评论(0)

kbook + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档