《(中职)数据库应用基础(SQL Server 2008)项目六 校园网数据的高级查询教学课件.pptx》由会员分享,可在线阅读,更多相关《(中职)数据库应用基础(SQL Server 2008)项目六 校园网数据的高级查询教学课件.pptx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、(中职)数据库应用基础(SQL Server 2008)项目六 校园网数据的高级查询教学课件(工信版)项目六 校园网数据的高级查询项目目标【知识目标】1会使用COUNT、MAX等聚合函数查询信息,会使用字符串函数来优化查询显示,会使用GROUP BY子句对数据进行分类汇总,会使用HAVING子句来限定查询结果;2会运用IN子查询来查询信息,会运用EXISTS子查询来查询信息,理解子查询和连接查询的区别;3能灵活应用连接查询实现多表查询、会创建并调用自定义函数;4理解存储过程及触发器。项目目标【能力目标】1具备数据库高级查询的能力;2具备利用函数进行查询的能力;3具备自定义函数的能力;4具备理解
2、存储过程与触发器的能力。项目目标【情感目标】1培养良好的抗压能力;2培养沟通的能力并通过沟通获取关键信息;3培养团队的合作精神;4培养实现客户利益最大化的理念;5培养事物发展是渐进增长的认知。任务一 统计查询n任务说明1聚合函数(1)含义。(2)种类。(3)基本格式。2GROUP BY子句(1)含义。(2)基本格式。3HAVING子句任务一 统计查询n任务分析 这里主要介绍了几种聚合函数的具体功能及应用,并引入了与之密切相关的GROUP BY 子句、HAVING子句等,从而完成数据的统计显示功能。聚合函数是SQL语言中的一类特殊函数,主要包括SUM、COUNT、MAX、MIN和AVG等。这些函
3、数和其他函数的根本区别是它们一般作用在多条记录上。聚合函数出现在查询语句的SELECT子句和GROUP BY、HAVING子句中,而在WHERE子句中不能使用聚合函数。使用GROUP BY子句可以对查询的结果集进行分组,HAVING子句的作用是筛选满足条件的分组。本任务主要完成以下查询。(1)各类职称教师人数的统计。(2)统计各课程的最高分、最低分和平均成绩。(3)查询选修4门以上(包括4门)选修课的学生。(4)统计各年份出生的学生人数。(5)查询选修人数在10人以下的选修课程。实施步骤n第1步:各类职称教师人数的统计。查询表teacher。要显示的信息为两列:一列是职称的名称,另一列为该类职
4、称的教师人数。n第2步:统计各课程的最高分、最低分和平均成绩。统计各课程的最高分、最低分和平均成绩,用到的表为choice。最后要显示的信息为4列,即课程编号、最高分、最低分和平均分。其中最高分、最低分和平均分都不是表中的列,要利用聚合函数MAX、MIN和AVG来显示。n第3步:查询选修4门以上(包括4门)选修课的学生。根据要求,用到的表为choice。最后要显示学生学号和课程门数,然后将选修课程数量大于等于4的学生筛选出来。这样就要用到GROUP BY和HAVING子句,HAVING子句可以对分类汇总的结果进行筛选。实施步骤n第4步:统计各年份出生的学生人数。n第5步:查询选修人数在10人以
5、下的选修课程。查询结果任务二 多表-连接查询n任务说明1连接查询(1)含义。(2)种类。(3)基本格式。2内连接(1)含义。(2)实现原理。(3)分类。(4)基本格式。3外连接4交叉连接任务二 多表-连接查询n任务分析 本任务主要是运用连接查询来实现多表信息的查询,介绍了最常用的内连接查询的实现方法。在实现内连接查询时,两表必须具有共同的字段,并以此作为连接条件来构建查询。连接运用符如果为等号,则为等值连接;除此以外的连接运算符(如、!、!和)构建的查询则是非等值连接;自然连接是等值连接的一种特殊形式。本任务要实现以下操作。(1)查询杨海艳的所有选修课的成绩。(2)查询选修了课程编号为“010
6、1001”的课程的学生姓名和成绩。(3)查询选修了“Photoshop图形图像处理”课程的学生姓名和成绩,并按成绩降序排列。(4)使用自然连接列出professional和department中各系部的专业情况。(5)将表department与表professional进行左外连接。实施步骤n第1步:查询杨海艳的所有选修课的成绩。n第2步:查询选修了课程编号为“0101001”的课程的学生姓名和成绩。n第3步:查询选修了“Photoshop图形图像处理”课程的学生姓名和成绩,并按成绩降序排列。n第4步:使用自然连接列出professional和department中各系部的专业情况。n第5步:
7、将表department与表professional进行交叉连接。任务三 多表-子查询n任务说明1子查询2子查询的实现过程3子查询的分类4子查询的语法格式任务三 多表-子查询n任务分析 本任务主要实现以下操作。(1)查询和“杨海艳”同班的学生信息。(2)查询比“c14f17”班学生的入学成绩都高的其他班的学生学号和姓名。(3)查询选修课考试成绩不及格的学生的学号和姓名。(4)查询选修了课程编号为“0101001”的课程的学生学号和姓名。(5)查询选修了课程编号为“0102001”的课程,且成绩高于该课程平均分的学生的学号。(6)查询比“c14f17”班某生入学成绩高的其他班的学生的学号和姓名。
8、实施步骤n第1步:查询和“杨海艳”同班的学生信息n第2步:查询比“c14f17”班学生的入学成绩都高的其他班的学生学号和姓名。n第3步:查询选修课考试成绩不及格的学生的学号和姓名第4步:查询选修了课程编号为“0101001”的课程的学生学号和姓名。n第4步:查询选修了课程编号为“0101001”的课程的学生学号和姓名。n第5步:查询选修了课程编号为“0102001”的课程,且成绩高于该课程平均分的学生的学号。n第6步:查询比“c14f17”班某生入学成绩高的其他班的学生的学号和姓名。任务四 利用函数进行的查询n任务说明1数据库中函数的含义及格式2函数的种类(1)系统函数。(2)用户自定义函数。
9、3常用系统函数(1)数字函数。(2)字符串函数。(3)日期时间函数。任务四 利用函数进行的查询n任务分析 本任务使用函数进行数据信息的查询,可以利用系统内置的函数,如日期时间函数、字符串函数对数据表中的信息进行查询,也可以使用用户自定义的函数进行特定任务的查询,实现特殊查询。实施步骤n第1步:查找“杨”姓同学的信息,可以使用前面已经介绍的模糊查询来实现。n第2步:创建自定义函数yhy,该函数可以根据输入的班级编号返回该班学生的学号、姓名、性别和出生日期。n第3步:使用ABS函数。n第4步:使用ROUND函数。n第5步:使用LEN函数。n第6步:使用REPLACE函数。n第7步:使用LTRIM函
10、数。n第8步:使用YEAR、MONTH和DAY函数。n第9步:使用GETDATE()函数显示当前年份。任务五 自定义函数n任务说明1数据库中的用户自定义函数(1)含义。(2)自定义函数的种类。(3)自定义函数的基本操作。2程序中的流程控制语句(1)BEGINEND语句块。(2)IFELSE语句。(3)CASE语句。任务五 自定义函数n任务分析 本任务主要介绍了利用用户自定义函数实现带参数查询的方法,以及SQL程序设计中的一些常用流程控制语句的书写格式和用途。函数是SQL编程中的基本元素之一,系统中除了提供已经定义的函数之外,也可以允许用户根据自己的需要创建函数。自定义函数可以分为标量函数、内嵌
11、表值函数和多语句表值函数3种。流程控制语句用来控制程序的执行和分支,它可以使程序更有结构性和逻辑性,主要包括BEGINEND、IFELSE和CASE语句等。本任务主要实现以下操作。(1)创建并调用用户自定义函数(标量函数)。(2)修改自定义函数的功能。(3)创建并调用用户自定义函数(内嵌表值函数)。实施步骤n第1步:创建并调用用户自定义函数(标量函数)。n第2步:修改自定义函数的功能。n第3步:创建并调用用户自定义函数(内嵌函数xyw-cj)。n第4步:使用IFELSE语句修改自定义函数yhy,该函数通过输入成绩来判断课程等级的情况。n第5步:删除已经创建的函数xyw_cj,如图6.5.5所示
12、。任务六 存储过程与触发器n任务说明1存储过程2存储过程的基本操作3变量4触发器的基础知识5触发器的基本原理6触发器的基本操作任务六 存储过程与触发器n任务分析 本任务主要介绍存储过程与触发器的基本功能和创建方法,以及SQL程序设计中基本变量的基本知识。存储过程是一种重要的数据库对象,是为了实现某种特定的功能而将一组SQL语句存储在服务器上,以供用户使用。它可以分为系统存储过程和用户自定义存储过程。本任务主要完成以下操作。(1)创建并调用一般存储过程。(2)创建并调用带参数的存储过程。(3)创建一个UPDATE触发器。(4)创建一个DELETE触发器。实施步骤n第1步:创建并调用一般存储过程。n第2步:创建并调用带参数的存储过程。n第3步:创建一个存储过程,实现用户登录验证。如果登录成功,则更新最新的登录时间。n第4步:删除存储过程st_yhy。n第5步:声明6个局部变量sno,sname,ssex,sbirthday,score和classno,并对其赋值,插入表student中。n第6步:创建一个UPDATE触发器。n第7步:创建一个DELETE触发器。