第5章 SQL(结构化查询语言).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 SQL(结构化查询语言)

要使带有ALL的子查询中的某行满足外部查询中指定的条件,引入子查询的列中的值必须大于由子查询返回的值的列表中每个值。 同样,ANY表示要使某一行满足外部查询中指定的条件,引入子查询的列中的值必须至少大于由子查询返回的值的列表中的一个值。 SELECT student_id, student_name,class_no FROM student_info WHERE born_date ALL (SELECT born_date FROM student_info WHERE class_no=200002) AND class_no200002 SELECT student_id, student_name,class_no FROM student_info WHERE born_date ANY (SELECT born_date FROM student_info WHERE class_no=200002) AND class_no200002 SELECT student_id FROM result_info WHERE course_no=13 AND result!ANY (SELECT result FROM result_info WHERE course_no=14) 5.5.4 使用EXISTS的子查询 使用EXISTS用于测试子查询的结果是否为空表。若子查询的结果集不为空,则EXISTS返回TRUE,否则返回FALSE。EXISTS还可与NOT结合使用,即NOT EXISTS,其返回值与EXISTS刚好相反。格式为: [NOT] EXISTS (子查询) SELECT student_name FROM student_info WHERE EXISTS (SELECT * FROM result_info WHERE course_no=13 AND student_id=student_info.student_id) 5.5.5 相关子查询 如果子查询的WHERE子句引用外部查询表,则该查询称为相关子查询,也称为重复查询。 对于相关子查询,子查询的条件依赖于外层查询中的某些值,其执行过程如下: ① 子查询为外部查询的每一行执行一次,即外部查询将相关的列值传给内部查询; ② 如果子查询的任何行与其匹配,外部查询就返回结果行; ③ 再回到第一步,直到处理完外部表的所有行。 SELECT student_name FROM student_info WHERE 计算机应用001班 IN (SELECT class_name FROM class_info WHERE class_no=student_info.class_no) 5.5.6 使用UNION运算符组合多个结果 使用UNION运算符可以将两个或多个SELECT语句的结果组合成一个结果集。使用UNION组合的结果集都必须具有相同的结构。而且它们的列数必须相同,并且相应的结果集列的数据类型必须兼容。 SELECT student_id,student_name FROM student_info WHERE class_no=200001 UNION SELECT student_id,student_name FROM student_info WHERE class_no=200002 5.5.7 在查询的基础上创建新表 提供了INTO子句,使用INTO关键字可以创建新表并将结果行从查询插入新表中,新表可以是一个永久或临时表。 SELECT 字段 [INTO 新建表名 ] FROM 表名 [WHERE 过滤条例表达式] 这是一种常用的创建临时表的方式,临时表以在表名前加(#或##)表示。 新创建表的结构由SELECT列表本身定义,新表的列顺序与SELECT列表中的顺序也相同,列名及数据类型也由SELECT列表确定。 SELECT student_name,class_name INTO student_class FROM student_info,class_info WHERE student_info.class_no=class_info.class_no SELECT * INTO student01 FROM student_info WHERE class_no

文档评论(0)

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

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

1亿VIP精品文档

相关文档