MySQL数据库应用项目式教程课件:子查询.pptx
子查询
本节内容1.创建单值子查询2.使用IN关键字创建多值子查询3.使用EXISTS关键字创建相关子查询4.使用ANY、ALL关键字创建子查询
01任务4-17创建单值子查询
1.创建单值子查询(1)查询同学在一个系的学生信息。(2)查询选修了“MySQL数据库应用”课程的学生的成绩信息。【任务分析】如果子查询的返回值为单列单值,可以通过使用“=”“!=”“”“”等比较运算符直接与父查询的字段值进行比较。语法格式为:?【任务描述】WHERE列名比较运算符(子查询)
1.创建单值子查询1.查询同学在一个系的学生信息。?【任务实施】
1.创建单值子查询2.查询选修了“MySQL数据库应用”课程的学生的成绩信息。?【任务实施】
1.创建单值子查询【任务实施】操作演示
02任务4-18使用IN关键字创建多值子查询
2.使用IN关键字创建多值子查询(1)查询考试不及格同学的学号、姓名和班级信息。(2)查询选修了“MySQL数据库应用”课程的学生的学号、姓名。(3)查询没有选修任何课程的学生的信息。【任务分析】如果子查询的返回值为单列多值,可以使用IN或NOTIN关键字,即表示在或者不在子查询的结果集中。其语法格式为:?【任务描述】WHERE列名[NOT]IN(子查询)
2.使用IN关键字创建多值子查询1.查询考试不及格同学的学号、姓名和班级信息。【任务实施】
2.使用IN关键字创建多值子查询2.查询选修了“MySQL数据库应用”课程的学生的学号、姓名。【任务实施】
2.使用IN关键字创建多值子查询3.查询没有选修任何课程的学生的信息。?【任务实施】
2.使用IN关键字创建多值子查询【任务实施】操作演示
03任务4-19使用EXISTS关键字创建子查询
3.使用EXISTS关键字创建子查询使用EXISTS关键字创建相关子查询,查询没有选修任何课程的学生名单。【任务分析】在WHERE子句中使用EXISTS关键字,表示判断子查询的结果集是否为空,如果子查询至少返回一行时,WHERE子句的条件为真,返回TRUE;否则条件为假,返回FALSE。加上关键字NOT,则刚好相反。?带EXISTS谓词的查询不同于普通的嵌套查询,它是先执行外层查询,然后再执行内层查询,由外层查询的值决定内层查询的结果,内层查询的执行次数由外层查询的结果决定。【任务描述】
3.使用EXISTS关键字创建子查询使用EXISTS关键字创建相关子查询,查询没有选修任何课程的学生名单。【任务实施】
3.使用EXISTS关键字创建子查询【任务实施】操作演示
04任务4-20使用ANY、ALL关键字创建子查询
4.使用ANY、ALL关键字创建子查询(1)查询比“22大数据1”班某个同学年龄大的学生信息。(2)查询比“22大数据1”班所有同学年龄都大的学生信息。【任务分析】子查询返回多个值(单列多行)的情况,使用比较运算符连接父查询与子查询时应加上ANY(SOME)或ALL谓词。其中,ANY和SOME是存在量词,只注重子查询是否有返回的值满足搜索条件,且两者含义相同,可以替换使用;而ALL要求子查询的所有查询结果列都要满足条件。?【任务描述】
4.使用ANY、ALL关键字创建子查询ANY和ALL运算符的含义:?【任务分析】运算符含义ANY大于子查询结果中的某个值ANY小于子查询结果中的某个值=ANY大于等于子查询结果中的某个值=ANY小于等于子查询结果中的某个值=ANY等于子查询结果中的某个值!=ANY或ANY不等于子查询结果中的某个值ALL大于子查询结果中的所有值ALL小于子查询结果中的所有值=ALL大于等于子查询结果中的所有值=ALL小于等于子查询结果中的所有值!=ALL或ALL不等于子查询结果中的任何一个值
4.使用ANY、ALL关键字创建子查询1.查询比“22大数据1”班某个同学年龄大的学生信息。【任务实施】
4.使用ANY、ALL关键字创建子查询2.查询比“22大数据1”班所有同学年龄都大的学生信息。?【任务实施】
4.使用ANY、ALL关键字创建子查询【任务实施】操作演示
4.6子查询操作演示
好好学习天天进步