《SQL Server 数据库案例教程》课件第6章高级查询.ppt
《《SQL Server 数据库案例教程》课件第6章高级查询.ppt》由会员分享,可在线阅读,更多相关《《SQL Server 数据库案例教程》课件第6章高级查询.ppt(19页珍藏版)》请在汇文网上搜索。
1、本章目标l掌握子查询的使用l区分相关子查询和无关子查询l掌握集合的操作UNION,EXCEPT,INTERSECT子查询l问题:查询平均成绩最低的学生信息 l解决方法:l一.首先查询平均成绩最低的学生编号 l二.以学号为条件查询学生信息子查询l子查询就是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询 l基本语法:SELECT*FROM Student WHERE StuNo=(SELECT TOP 1 StuNo AS StuNo FROM StuScore GROUP BY StuNoORDER BY AVG(Score)SELECT 列名.
2、FROM 表名WHERE 条件=(SELECT 列名FROM 表名WHERE 条件)单行子查询子查询返回单个结果值关联语法实现方式:SELECT*FROM Student A JOIN (SELECT TOP 1 StuNo AS StuNo FROM StuScore GROUP BY StuNo ORDER BY AVG(Score)AS B ON A.StuNo=B.StuNo单行子查询多层嵌套问题:查询高于全班平均成绩的学生的学生信息解决方法:l一.查询平均成绩l二.查询成绩大于平均成绩的学生学号l三.查询学生信息SELECT*FROM Student A,(SELECT*FROM S
3、tuScore WHERE Score(SELECT AVG(Score)FROM StuScore)AS B WHERE A.StuNo=B.StuNo多行子查询多行子查询是指子查询(内部查询)返回多个值,外部查询通过IN(NOT IN)引入子查询。语法:SELECT 列名。FROM 表名WHERE 条件 NOT IN (SELECT 列名 FROM 表名 WHERE 条件 )IN子查询问题:查询男生的考试信息 子查询:子查询:SELECT*FROM StuScore WHERE StuNo IN(SELECT StuNo FROM Student WHERE StuSex=男男)关联语法:
4、关联语法:SELECT*FROM Student A JOIN StuScore B ON A.StuNo=B.StuNoAND A.StuSex=男男NOT IN子查询问题:查询不住在广州的学生SELECT*FROM StuScoreWHERE StuNo NOT IN(SELECT StuNo FROM Student WHERE StuAddress=广州广州)关联查询:关联查询:SELECT*FROM StuScore AJOIN Student B ON A.StuNo=B.StuNo WHERE B.StuAddress广州广州Exists子查询问题:查询参加了考试的学生解决方法:
5、l一.查找所有的学生l二.判断该学生是否参加了考试,如果是则输出SELECT*FROM StudentWHERE EXISTS(SELECT*FROM StuScore WHERE StuScore.StuNo=Student.StuNo)NOT Exists子查询示例:查询没有参加考试的学生信息SELECT*FROM StudentWHERE NOT EXISTS(SELECT*FROM StuScore WHERE StuScore.StuNo=Student.StuNo)相关,无关子查询比较相关子查询:首先执行外部查询,子查询根据外部查询获得值。子查询执行是重复的,为外部查询可能选择的每
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载共享资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server 数据库案例教程 SQL Server 数据库案例教程课件第6章高级查询 SQL 数据库 案例 教程 课件 高级 查询