7-2-第4章-数据库的查询-子查询.pptVIP

  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文档。上传文档
查看更多

第4章数据库的查询子查询一个完整的SQL语句的结构:所有被使用的子句必须按语法说明中显示的顺序严格地排序。SELECT字段或分组函数FROM表名[WHERE筛选条件][GROUPBY分组列][HAVING分组筛选条件][ORDERBY列][LIMIT];SELECT语句在查询条件中,可以使用另一个查询的结果作为条件的一部分,例如,判定列值是否与某个查询的结果集中的值相等,作为查询条件一部分的查询称为子查询。SQL标准允许SELECT多层嵌套使用,用来表示复杂的查询。子查询除了可以用在SELECT语句中,还可以用在INSERT、UPDATE及DELETE语句中。子查询子查询(1)IN子查询IN子查询用于进行一个给定值是否在子查询结果集中的判断,格式为:expression[NOT]IN(subquery)其中,subquery是子查询。当表达式expression与子查询subquery的结果表中的某个值相等时,IN谓词返回TRUE,否则返回FALSE;若使用了NOT,则返回的值刚好相反。【例1】查找选修了课程的学生姓名和学号SELECT姓名,学号 FROMXS WHERE学号IN (SELECTdistinct学号 FROMXS_KC );子查询说明:在执行包含子查询的SELECT语句时,系统先执行子查询,产生一个结果表,再执行外查询。本例中,先执行子查询:SELECTdistinctxs_kc.学号 FROMXS_KC得到一个只含有学号列的表。再执行外查询,若XS表中某行的学号列值等于子查询结果表中的任一个值,则该行就被选择。子查询【练习1】查找没有选课的学生列表子查询(2)比较子查询这种子查询可以认为是IN子查询的扩展,它使表达式的值与子查询的结果进行比较运算,格式为:expression{|=|=||=|!=|}{ALL|SOME|ANY}(subquery)其中,expression为要进行比较的表达式,subquery是子查询。ALL、SOME和ANY说明对比较运算的限制。如果子查询的结果集只返回一行数据时,可以通过比较运算符直接比较。子查询【例2】查找在XSCJ数据库中选修了课程号为206的课程的学生的姓名、学号。SELECT姓名,学号 FROMXS WHERE学号IN (SELECT学号 FROMXS_KC WHERE课程号=206 );子查询【练习2】查找分数为90的学生的姓名、学号。子查询【例3】查找未选修离散数学的学生的姓名、学号select姓名,学号,专业名fromxswhere学号notin (select学号fromxs_kc where课程号in (select课程号fromkc where课程名=离散数学 ) );子查询【练习3】查找选了计算机基础的学生的姓名、学号子查询【例4】查找年龄最大的学生姓名select姓名,出生时间fromxswhere出生时间= (selectmin(出生时间) fromxs );子查询【练习4】查找分数最高的学生姓名、学号。子查询(2)比较子查询这种子查询可以认为是IN子查询的扩展,它使表达式的值与子查询的结果进行比较运算,格式为:expression{|=|=||=|!=|}{ALL|SOME|ANY}(subquery)其中,expression为要进行比较的表达式,subquery是子查询。ALL、SOME和ANY说明对比较运算的限制。ALL指定表达式要与子查询结果集中的每个值都进行比较,当表达式与每个值都满足比较的关系时,才返回TRUE,否则返回FALSE;SOME或ANY是同义词,表示表达式只要与子查询结果集中的某个值满足比较的关系时,就返回TRUE,否则返回FALSE。子查询【例5】查找XS表中比所有计算机系的学生年龄都大的学生学号、姓名、专业名、出生日期。SELECT学号,姓名,专业名,出生时间 FROMXS WHERE出生时间ALL(SELECT出生时间FROMXS

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档