SQL基础数据教程 4_第1页
SQL基础数据教程 4_第2页
SQL基础数据教程 4_第3页
SQL基础数据教程 4_第4页
SQL基础数据教程 4_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

博学谷——让IT教学更简单,让IT学习更有效《MySQL数据库案例教程》教学设计课程名称:授课年级:授课学期:教师姓名:年月课题名称任务6查询学生选课系统的多表数据计划课时4课时教学引入在任务5的学习中,数据查询都是在一张表中进行的,那么,如果要查询计算机科学与工程学院所有学生的学号、姓名、课程名程及成绩,就要涉及4张表,该如何实现呢?教学目标掌握连接查询操作熟悉子查询的概念,能够区分每种子查询的作用;能够使用子查询结合IN、EXISTS、ANY、ALL及比较运算符进行查询教学重点掌握连接查询操作能够使用子查询结合IN、EXISTS、ANY、ALL及比较运算符进行查询教学难点使用子查询结合IN、EXISTS、ANY、ALL及比较运算符进行查询教学方式课堂教学以PPT讲授为主,并结合多媒体进行教学教学过程第1、2课时一、复习巩固教师通过上节课作业的完成情况,对学生吸收不好的知识点进行再次巩固讲解。二、通过直接导入的方式导入新课如果要查询计算机科学与工程学院所有学生的学号、姓名、课程名程及成绩,就要涉及4张表,该如何实现呢?三、新课讲解教师通过PPT结合实际操作的方式讲解。1.连接查询在关系数据库中,如果想要同时获得多张数据表中的数据,可以将多张数据表中相关联的字段进行连接,并对连接后的数据表进行查询,这样的查询方式称为连接查询。连接查询是通过各个表之间的共同列的相关性来查询数据的,进行多表连接查询时首先要在这些表中建立连接,再在连接生成的结果集中进行筛选。在MySQL中,连接查询包括交叉连接查询、内连接查询和外连接查询,本节将对这些连接查询进行讲解。(1)交叉连接查询交叉连接就是将连接的两个表的所有行进行组合,也就是将第一个表的所有行分别与第二个表的每行连接形成一个新的数据行。交叉连接查询后生成的结果集的数据行数等于两个表的行数的乘积,字段个数等于两个表的字段个数的和,其语法格式如下:SELECT*FROM表名1CROSSJOIN表名2;该交叉连接语法也可用隐式表示法替代,即使用逗号分隔两个表,所以上面后两句的可以用如下语句替换。FROM表名1,表名2;下面对上述语法格式进行说明。①经过交叉连接查询后,SELECT后面的字段是两个表的所有字段,因此用通配符“*”表示。②CROSSJOIN是将两个表进行交叉连接的关键字,表名1是第一个表的名字,表名2是第二个表的名字。(2)内连接查询交叉连接查询会返回很多无效的数据,没有参考意义。为了提高查询结果的准确度,可以使用内连接查询限定查询语句的条件,从而去除无效的数据。内连接查询是将一张数据表中的每一行记录按照指定条件与另外一张数据表进行匹配,如果匹配成功,则返回参与内连接查询的两张数据表中符合连接条件的部分,如果匹配失败,则不保留数据。(3)外连接查询外连接查询与内连接不同,其在查询时所用的表有主从之分。进行外连接时,以主表中每行数据去匹配从表中的数据行,如果符合连接条件则将其返回结果集中;如果没有找到匹配行则在结果集中仍然保留主表的行,相对应地,从表中的字段将被填入NULL值。外连接的语法格式如下所示:SELECT*|{字段名1[,字段名2,…]}FROM表名1LEFTJOIN|RIGHTJOIN|FULLJOIN表名2ON表名1.字段名1比较运算符表名2.字段名2;在上述语法中,关键字左边的表(表名1)为左表,右边的表(表名2)为右表,因此,外连接查询只适用于两个表。外连接包括3种类型:左外连接、右外连接和全外连接。四、归纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给予指导。五、布置作业教师通过学习通布置本节课作业以及下节课的预习作业。第3、4课时一、复习巩固教师通过上节课作业的完成情况,对学生吸收不好的知识点进行再次巩固讲解。二、通过直接导入的方式导入新课如果要查询计算机科学与工程学院所有学生的学号、姓名、课程名程及成绩,就要涉及4张表,该如何实现呢?三、新课讲解教师通过PPT结合实际操作的方式讲解。1.子查询在多表查询中,有时在执行某个查询的过程中可能会用到另一个查询的结果,此时可以使用子查询实现。由于查询时需要多条SQL语句实现,即在WHERE子句中包含另一个SELECT语句,使用包含在内部的SELECT语句进行的查询称为子查询,同时这种将一个查询嵌套在另一个查询的WHERE子句中的查询也称为嵌套查询,包含子查询的SELECT语句称为父查询。含有子查询的语句执行时由内向外,首先执行子查询,子查询得到的结果集不显示出来,而是传给父查询,作为父查询的条件使用,然后执行父查询,并显示查询结果。子查询一般是嵌套在SELECT查询语句中,按查询结果来说主要分为两种形式:结果为单个值的子查询和结果为多个值的子查询。然而,有时候子查询的结果可能为空值,从而会影响到SELECT字句中的具体字段的表示,所以在子查询前面加入了EXISTS谓词,用来测试子查询的结果是否为空。(1)子查询结果为单个值子查询结果为单个值时,父查询条件中一般使用的是“=”“>”“<”“<=”“>=”“!=”等比较运算符,其语法格式如下:SELECT*|{字段名[,…]}FROM表名1,表名2WHERE字段名比较运算符(SELECT*|{字段名[,…]}FROM表名1,表名2WHERE条件表达式);(2)子查询结果为多个值的集合子查询结果为多个值时,父查询条件中一般使用的是IN、ANY、ALL等运算符,其语法格式如下:SELECT*|{字段名[,…]}FROM表名1,表名2WHERE字段名IN|ANY|ALL(SELECT*|{字段名[,…]}FROM表名1,表名2WHERE条件表达式);其中,IN运算符用于判断父查询中某个属性列值是否在子查询的结果中;在子查询前面使用ANY谓词时,会使用指定的比较运算符将一个表达式的值或字段的值与子查询返回值中的每一个进行比较,只要有一次比较的结果为TRUE,则整个表达式的值为TRUE,否则为FALSE;在子查询前面使用ALL谓词时,会使用指定的比较运算符将一个表达式的值或字段的值与子查询返回值中的每一个进行比较,只有当所有比较的结果都为TRUE时,整个表达式的值才为TRUE,否则为FALSE。(3)EXISTS子查询EXISTS子查询是指在子查询前面加上EXISTS或NOTEXISTS谓词。EXISTS和后面的子查询构成EXISTS表达式。EXISTS用于测试子查询的结果是否为空,如果结果不为空,则返回TRUE;否则返回FALSE,其语法格式如下:SELECT*|{字段名[,…]}FROM表名1,表名2WHERE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论