新数据库原理及应用 教学课件 王雯 第7章 数据库的数据操作.pptVIP

新数据库原理及应用 教学课件 王雯 第7章 数据库的数据操作.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 7.6 嵌套查询 7.6.3 多值比较嵌套查询 多值比较嵌套查询指父查询与多值子查询之间的比较。可以使用逻辑运算符有ALL、SOME和ANY来定义比较的范围。 其语法格式为: WHERE表达式 比较运算符 逻辑运算符(子查询) SOME表示如果在一系列比较中,有些为TRUE那么结果就为TRUE; ANY表示如果在一系列比较中,任何一个为TRUE那么结果就为TRUE; ALL 表示如果在一系列比较中,全部都为TRUE结果才能为TRUE。 多值比较中也可以使用单值比较中所用的运算符: , = , , = , = , 注:all等价于not in ,= some等价于in, some不等价于not in。 * 7.6 嵌套查询 【例7-45】查询学时最少的课程信息。 SELECT * FROM course WHERE 学时 =all ( SELECT 学时FROM course ) 【例7-46】查询学时不是最少的课程信息 SELECT * FROM course WHERE 学时some (SELECT 学时FROM course ) * 7.6 嵌套查询 7.6.4 带[NOT] EXISTS的嵌套查询 在 true/false 比较中使用[NOT] EXISTS 谓词来决定子查询是否会返回任何记录。EXISTS是SQL中的逻辑运算符号,如果子查询包含一些行,那么就为TRUE。其语法格式为: WHERE [NOT] EXISTS(子查询) EXISTS为存在之意,它只查找满足条件的记录,一旦找到第一个匹配的记录后,就马上停止查找。EXISTS子查询用来判断该子查询是否返回元组,当子查询的结果集非空时,exists为true;当子查询的结果集为空时,exists为false。 * 7.6 嵌套查询 【例7-47】查询有班主任的班级的同学信息。 select * from student where exists (select * from class where 班主任编号is not NULL ) * 7.6 嵌套查询 【例7-48】查询选修了所有课程的学生信息 select * from student x where not exists (select * from course y where not exists (select * from Score z Where 学号= x.学号 and 课程号= y.课程号)) * 7.7 更新操作 SQL中数据更新包括插入数据、修改数据和删除数据三条语句。 7.7.1 插入数据 SQL的数据插入语句INSERT通常有两种形式。一种是插入一个元组,另一种是插入子查询结果。后者可以以此插入多个元组。 * 7.7 更新操作 1.插入单个元组 INSERT语句的格式为: INSERT INTO 表名(属性列1[,属性列2…)] VALUES(常量1[,常量2]…); 【例7-49】为student表的学号与姓名两个字段插入值。 INSERT INTO Student (学号,姓名) VALUES (08006,王凯) * 7.7 更新操作 【例7-50】为表的所有字段插入一行值,使用以下语句实现: INSERT INTO Student VALUES (08007,刘积云 ,男,1991-07-22,c63) * 7.7 更新操作 2.插入多个元组 在Scores表中记载的是学生选修所有课程的信息,若想按课程号将Scores表水平分割为若干张表(也就是第4章讲过的对模式进行优化),即每门课一张表,应如何实现呢?可以用插入多个元组的方法实现。即将查询嵌套在INSERT语句中,用以生成要插入的批量数据。 插入来自查询结果的INSERT语句的格式为: INSERT INTO表名(属性列1[,属性列2…]) 查询 * 7.7 更新操作 【例7-51】假设已建新表score_c1,其结构与scores相似,但只有学号和成绩两个属性,现将所有选修了C1课程的信息插入到score_c1表中。 INSERT INTO score_c1 SELECT 学号,成绩 FROM score WHERE 课程号=C1 * 7.7 更新操作 7.7.2 修改数据 UPDATE语句用于更新或者修改匹配指定条件的记录,它是通过构造一个where语句来实现的。UPDAT

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档