20项目6查询与维护学生信息管理数据表-4嵌套查询.pptVIP

20项目6查询与维护学生信息管理数据表-4嵌套查询.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文档。上传文档
查看更多
《 MySQL 数据库原理及应用》 项目 6 查询与维护学生信息管理数据表 ? 学习目标: 掌握数据查询命令的使用 掌握聚集函数的使用方法及技巧 掌握分组与排序的使用方法 理解多表连接查询和嵌套查询的使用规则 掌握表记录的插入、修改和删除操作 复习回顾: 交叉连接 多 表 连 接 查 询 内连接 自连接 格式 1 : select 子句 from 表 1, 表 2 where 两个表的连接条件 格式 2 : select 子句 from 表 1 inner join 表 2 on 两个表的连接条件 格式: select 子句 from 表名 a, 表名 b where 两个表的连接条件 左外连接 外连接 右外连接 全外连接 知识点导入: ? 要实现查询“查询与刘晨在同一个系学习 的学生学号、姓名及所在系”,怎么做? select b.sno,b.sname,b.sdept from student a,student b where a.sdept=b.sdept and a.sname =‘ 刘晨 有没有更好的 解决办法呢? 嵌套查询 任务 6-3 理解嵌套查询 ? 【任务分析】 在实际应用中,数据查询经常会用到多层查询,即将一条 select 语句作为另一条 select 语句的一部分。 ? 【课堂任务】 本节要求理解并掌握嵌套查询的概念、执行过程,并学会用 嵌套查询解决实际问题。 ? 嵌套子查询 ? 相关子查询 任务 6-3 理解嵌套查询 ? 在 SQL 语言中,一个 SELECT — FROM — WHERE 语 句称为一个查询块。将一个查询块嵌套在另一个查询 块的 WHERE 子句或 HAVING 子句的条件中称为嵌套 查询或子查询。 ? 例如: SELECT sname FROM student WHERE sno IN(SELECT sno FROM sc WHERE cno=C02); 任务 6-3 理解嵌套查询 ? 需要特别指出的是,子查询中的 SELECT 语句用一对 括号“ ( ) ”定界,查询结果必须确定,并且在该 SELECT 语句中不能使用 ORDER BY 子句, ORDER BY 子句永远只能对最终查询结果排序。 ? 嵌套查询的求解方法是由里向外处理的,即每个子 查询在其上一级查询处理之前求解,子查询的结果 用于建立其父查询的查找条件。 ? 子查询一般分为两种: 嵌套子查询和相关子查询 。 (一)嵌套子查询 嵌套子查询又称为不相关子查询,也就是说,嵌套子 查询的执行不依赖于外部嵌套。 ? 执行过程: 首先执行子查询,子查询得到的结果集不被显示出来, 而是传给外部查询,作为外部查询的条件使用,然后执 行外部查询,并显示查询结果。子查询可以多层嵌套。 (一)嵌套子查询 ? 1 、子查询返回单个值 ? 【例 6.52 】 查询所有年龄大于平均年龄的学生姓名。 SELECT sname FROM student WHERE YEAR(CURDATE())-YEAR(sbirthday) (SELECT AVG(YEAR(CURDATE())-YEAR(sbirthday)) FROM student ); ? 【例 6.53 】 查询与刘晨在同一个系学习的学生。 SELECT sno, sname, sdept FROM student WHERE sdept=(SELECT sdept FROM student WHERE sname= 刘晨 ); (一)嵌套子查询 ? 2 、子查询返回一个值列表 ( 用 IN 操作符实现查询 ) ? 【例 6.54 】 用 IN 操作符改写例 6.50 。 SELECT sno, sname, sdept FROM student WHERE sdept IN(SELECT sdept FROM student WHERE sname= 刘晨 ); ? 【例 6.55 】 查询没有选修数学的学生学号和姓名。 SELECT sno,sname FROM student WHERE sno NOT IN ( SELECT sno FROM sc WHERE cno IN ( SELECT cno FROM course WHERE cname= 数学 )); (一)嵌套子查询 ? 3 、子查询返回一个值列表 ( 用 ANY 或 ALL 操作符实现查询 ) ? 使用格式: 字段 比较符 [ANY|ALL] 子查询 用 法 大于子查询结果中的某个值 大于子查询结果中的所有值 小于子查询结果中的某个值 小于子查询结果中的所有值 大于等于子查询结果中的某个值 大于等于子查询结果中的所有值 小于等于子查询结

文档评论(0)

jinzhuang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档