模块教学管理系统数据查询PPT课件_第1页
模块教学管理系统数据查询PPT课件_第2页
模块教学管理系统数据查询PPT课件_第3页
模块教学管理系统数据查询PPT课件_第4页
模块教学管理系统数据查询PPT课件_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

24 04 2020 精品课件 1 模块04 教学管理系统 数据查询 1 数据库系统设计与项目应用 课程 24 04 2020 精品课件 2 工作任务与学习目标 04模块 24 04 2020 精品课件 3 工作任务与学习目标 04模块 24 04 2020 精品课件 4 Preface 随着 教学管理系统 数据库及相关表的创建 以及样例测试数据的插入 如何运用 数据查询语言 来进行有效数据的查询和利用 并提供用户所要求的各种查询报表 是我们接下来要探讨和学习的内容 数据查询语言是数据库管理系统的重要组成部分 许多数据库系统拥有作为高级查询语句的结构化查询语言 StructuredQueryLanguage 简称SQL 04模块 24 04 2020 精品课件 5 任务4 1 任务4 1简单查询学生信息 24 04 2020 精品课件 6 任务4 1简单查询学生信息 在 学分制教学管理系统 中 所有学生的基本信息都保存在学生信息表TB Student中 教务处负责学籍管理的张老师经常要按照以下几种方式查询学生信息 查看学生表中所有学生的所有字段的信息 查看学生表中所有学生的部分字段 StuID StuName Sex ClassID 信息 按班级查看某个班学生的部分字段 StuID StuName Sex ClassID 信息 按班级查看某个班学生的部分字段 StuID StuName Sex ClassID 信息 而且先按字段 Sex 降序 再按字段 StuName 进行降序排列 请用SQL查询语句实现张老师的查询要求 任务描述与分析 24 04 2020 精品课件 7 任务4 1简单查询学生信息 查询是针对数据库中的数据表的数据行而言的 可以理解为 筛选 例如 查询 课程信息表 中的计算机系开设的课程信息 只需要 课程编号 课程名称 和 系部 三个字段的信息 其查询过程如下图所示 相关知识与技能 查询机制 24 04 2020 精品课件 8 任务4 1简单查询学生信息 相关知识与技能 24 04 2020 精品课件 9 任务4 1简单查询学生信息 相关知识与技能 课程信息表 数据表在接受查询请求的时候 可以简单理解为逐行选取 判断是否符合查询的条件 如果符合条件就提取出来 然后把所有符合条件的行组织在一起 形成一个结果集 类似于一个新的表 这样的查询结果 我们称之为 记录集 24 04 2020 精品课件 10 任务4 1简单查询学生信息 相关知识与技能 首先 让我们学习最简单的查询语句 它的基本结构是 简单SELECT查询 SELECT子句的 字段1 字段2 部分用于指定选择要查询的源数据表中的列 它可以是星号 表达式 字段列表 变量等 FROM子句的 数据表 部分用于指定要查询的表或视图 可以指定多个表或视图 用逗号相互分开 24 04 2020 精品课件 11 任务4 1简单查询学生信息 相关知识与技能 用SELECT和FROM只能返回表中的所有行 在查询中加上WHERE子句则使整个查询具有选择性 WHERE子句指定数据检索的条件 以限制返回的数据行满足一定的条件 WHERE后面的子句由谓词构成的条件来限制返回的查询结果 带有WHERE子句的查询语句基本结构是 WHERE子句 24 04 2020 精品课件 12 任务4 1简单查询学生信息 相关知识与技能 ORDERBY子句用于对查询的结果进行排序 它可以按照一个或多个字段对查询的结果进行升序 ASC 或降序 DESC 排列 其中 升序 ASC 为缺省默认设置 ORDERBY子句一般跟在WHERE条件子句的后面 带有WHERE和ORDERBY子句的查询语句基本结构是 ORDERBY子句 当ORDERBY子句后面有多个排序字段时 则按照排序字段的前后顺序进行处理 24 04 2020 精品课件 13 任务4 1简单查询学生信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下代码 查看学生表中所有学生的所有字段的信息 2 单击 执行 按钮即可在数据库中查询得到相应的结果 表中共50条记录 如下图所示 24 04 2020 精品课件 14 任务4 1简单查询学生信息 任务实施与拓展 24 04 2020 精品课件 15 任务4 1简单查询学生信息 任务实施与拓展 子任务 1 将子任务 中的SQL查询语句改为如下语句 查看学生表中所有学生的部分字段 2 单击 执行 按钮可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 16 任务4 1简单查询学生信息 任务实施与拓展 很明显 在查询显示的结果中只给出了SELECT查询子句指定的StuId StuName Sex ClassId四个字段的信息 其余字段信息不再显示 24 04 2020 精品课件 17 任务4 1简单查询学生信息 任务实施与拓展 子任务 1 将子任务 中的SQL查询语句改为如下语句 按班级查看某个班学生的部分字段信息 2 单击 执行 按钮可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 18 任务4 1简单查询学生信息 任务实施与拓展 很明显 在查询显示的结果中只给出了04网络 1 班且SELECT查询子句指定的StuId StuName Sex ClassId四个字段的信息 其余班级的信息不再显示 24 04 2020 精品课件 19 任务4 1简单查询学生信息 任务实施与拓展 子任务 1 将子任务 中的SQL查询语句改为如下语句 按班级查看某个班学生的部分字段信息 而且先按字段 Sex 再按字段 StuName 进行降序排列 2 单击 执行 按钮可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 20 任务4 1简单查询学生信息 任务实施与拓展 很明显 在子任务 的查询结果基础上 本子任务的查询结果先按照学生 Sex 字段降序排列 对于 Sex 字段值相同的记录再按 StuName 字段降序顺序排列 24 04 2020 精品课件 21 任务4 1简单查询学生信息 任务实施与拓展 任务拓展1 TOP关键字 从上述 子任务 的查询结果可以看出 04网络 1 班共有10名学生 如果我们只需要在 子任务 的基础上查询出这个班级的前5名学生 可用下述含TOP关键字的SQL语句实现 24 04 2020 精品课件 22 任务4 1简单查询学生信息 任务实施与拓展 单击 执行 按钮可在数据库中查询得到相应的结果 如图所示 从上图可以看出 在查询显示的结果中只给出了04网络 1 班的前5位学生信息 其余的学生信息不再显示 24 04 2020 精品课件 23 任务4 1简单查询学生信息 任务实施与拓展 任务拓展2 DISTINCT关键字 如果我们想查询一下学生表 TB Student 中存在那些班级的学生信息 可以用以下包含DISTINCT关键字的SQL查询语句实现 24 04 2020 精品课件 24 任务4 1简单查询学生信息 任务实施与拓展 单击 执行 按钮可在数据库中查询得到相应的结果 如图所示 试着将上述SQL查询语句中的DISTINCT关键字去掉后再执行一下 看看会出现什么结果 24 04 2020 精品课件 25 任务4 1简单查询学生信息 任务实施与拓展 任务拓展3 列别名 使用SELECT语句查询数据时 可以使用别名的方法根据需要对数据显示的标题进行修改 或者为没有标题的列增加临时的标题 使用列别名有三种方式 列别名 列名列名AS列别名列名列别名如任务4 1中的 子任务 的查询结果显示的字段名称全部为英文 不太直观 可以用下述语句通过使用 列别名 的方式让查询结果显示的字段名称变为中文 24 04 2020 精品课件 26 任务4 1简单查询学生信息 任务实施与拓展 24 04 2020 精品课件 27 任务4 1简单查询学生信息 任务实施与拓展 查询结果如图所示 注意 当使用英文列别名超过两个单词时 必须给别名加上单引号 列别名可用于ORDERBY子句中 但不能用于WHERE GROUPBY或HAVING子句中 24 04 2020 精品课件 28 任务4 1简单查询学生信息 注意事项 对于简单查询 我们必须要明确查询显示的字段列表和指定查询的数据表 显示的字段内容必须在表中存在 如果是带条件的查询 一定要根据查询要求运用条件运算符构造正确的条件表达式 带条件查询可以体现查询操作的灵活性 SELECT FROM WHERE ORDERBY 语句的查询结构中各子句的顺序不能随意调整 其中 WHERE和ORDERBY子句都是可以选择使用的部分 而且 ORDERBY子句总是位于WHERE子句 如果有的话 后面 它可以包含一个或多个列 每个列之间以逗号分隔 这些列可能是表中定义的列 也可能是SELECT子句中定义的计算列 任务实施与拓展 24 04 2020 精品课件 29 任务4 2 任务4 2用计算列显示学生和学生选课信息 24 04 2020 精品课件 30 任务4 2用计算列显示信息 计算列 是为了从已有的数据中获取相关的重要信息 教学管理系统 的使用者之一 班主任 经常要用下述 子任务 中的方法查询学生的相关信息 教务处负责选修课程管理的郭老师经常要用下述 子任务 中的方法查询学生选修课程班的人数信息 将任务4 1中的 任务拓展3 中用 列别名 显示的 学生姓名 和 性别 字段的数据合成为一个 学生姓名 性别 字段显示 查看 学生信息表 中自己班 如 04网络 1 班 学生的部分字段 StuID StuName Sex 信息 同时显示一个计算列 年龄 查看 课程班信息表 中的部分字段 CourseClassID ClassID TeacherID MaxNumber SelectedNumber 信息 任务描述与分析 24 04 2020 精品课件 31 任务4 2用计算列显示信息 在进行数据查询时 经常需要对查询到的数据进行再次计算 这时可在SELECT语句中使用计算列完成 计算列并不存在于数据表中 它是通过对某些列的数据进行计算得到的结果 计算列一般是一个由字段 运算符和函数等组成的表达式 相关知识与技能 计算列 24 04 2020 精品课件 32 任务4 2用计算列显示信息 号除了作为数值运算中的加号 还可以作为两个字符串的连接符号 如要将字符串 Ilove 和 Beijing 连接成一个字符串 IloveBeijing 可以用下述表达式实现 Ilove Beijing 表达式中的 号为字符串连接运算符 相关知识与技能 字符串连接运算 24 04 2020 精品课件 33 任务4 2用计算列显示信息 相关知识与技能 字符串函数 24 04 2020 精品课件 34 任务4 2用计算列显示信息 相关知识与技能 日期和时间函数 上表中的日期和时间函数中的参数 返回部分 有以下类型 YEAR MONTH DAY WEEK HOUR MINUTE SECOND等 24 04 2020 精品课件 35 任务4 2用计算列显示信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下T SQL语句 用合成字段 学生姓名 性别 显示学生姓名和性别信息 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 36 任务4 2用计算列显示信息 任务实施与拓展 上面查询语句中的 StuName Sex 是一个表达式 其中的 号为字符串连接运算符 24 04 2020 精品课件 37 任务4 2用计算列显示信息 从上图可以看出 学生姓名 性别 列中的的 学生姓名 和 性别 之间好像存在着空格 如何将这个空格去掉 可以用下列SQL查询语句实现 任务实施与拓展 24 04 2020 精品课件 38 任务4 2用计算列显示信息 查询结果如下图所示 任务实施与拓展 24 04 2020 精品课件 39 任务4 2用计算列显示信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下SQL语句 用计算列 年龄 显示学生年龄信息 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 40 任务4 2用计算列显示信息 任务实施与拓展 用下述T SQL语句也可以得到上图所示显示结果 24 04 2020 精品课件 41 任务4 2用计算列显示信息 任务实施与拓展 24 04 2020 精品课件 42 任务4 2用计算列显示信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下SQL语句 用计算列 可选数 显示课程班剩余可选学生数信息 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 43 任务4 2用计算列显示信息 任务实施与拓展 用下述T SQL语句也可以得到上图所示显示结果 24 04 2020 精品课件 44 任务4 2用计算列显示信息 任务实施与拓展 24 04 2020 精品课件 45 任务4 2用计算列显示信息 任务实施与拓展 任务拓展1 SUBSTRING函数和LEN函数 如果要显示 课程班信息表 中上课教师的系部信息和 TeachingTime 字段的字符长度信息 可以用下述T SQL语句实现 24 04 2020 精品课件 46 任务4 1简单查询学生信息 任务实施与拓展 查询结果如下图所示 24 04 2020 精品课件 47 任务4 2用计算列显示信息 任务实施与拓展 任务拓展2 STR函数 如果要显示 课程班信息表 中上课教师的系部信息和 TeachingTime 字段的字符长度信息 可以用下述T SQL语句实现 24 04 2020 精品课件 48 任务4 2用计算列显示信息 任务实施与拓展 查询结果如下图所示 要将上图中的 无列名 字段名称仍然显示为 TeachingPlace 同时将这个字段显示数据中间的空格去掉 考虑LTRIM函数 该如何修改上述T SQL语句 24 04 2020 精品课件 49 任务4 3 任务4 3运用运算符查询学生相关信息 24 04 2020 精品课件 50 任务4 3用运算符过滤信息 同样 班主任 还要用下述 子任务 中的方法查询学生的相关信息 教务处负责学籍管理的张老师经常要用下述 子任务 中的方法查询个别学生的信息 查询自己班级 如04网络 2 班 性别为 男 或为 女 的所有学生信息 只显示 学号 姓名 性别和出生年份 字段 查询自己班级 如04网络 2 班 在某个出生年份段 如19 21岁 的所有学生信息 只显示 学号 姓名 性别和年龄 字段 要查询一个学生的所有信息 但是只知道这个学生的班级 如04网络 2 班 还有该学生的姓 如 刘 或者只知道这个学生的班级 如04网络 2 班 还有该学生的名字中的一个字 如 金 任务描述与分析 24 04 2020 精品课件 51 任务4 3用运算符过滤信息 带条件的查询通常是在WHERE子句后面构造条件表达式来实现检索的 在SELECT查询语句中常用的条件运算包括比较 范围 列表 模式匹配 空值判断和逻辑运算等 具体情况如下表所示 相关知识与技能 查询条件及运算符 24 04 2020 精品课件 52 任务4 3用运算符过滤信息 在使用条件表达式完成数据筛选时 表达式中可能会使用通配符 通配符是指在字符串操作中用于指定位置上通配一定位数的字符的处理 它通常与LIKE操作符配合使用 通配符种类如下表所示 相关知识与技能 通配符 24 04 2020 精品课件 53 任务4 3用运算符过滤信息 LIKE运算符用于将指定列与其后面的字符串进行匹配运算 语法格式如下 NOT LIKE 可以是一个完整的字符串 此时 LIKE等价于等号 也可以是包含有通配符的字符串 如 LIKE 王 表示通配以 王 开头的所有字符串 相关知识与技能 24 04 2020 精品课件 54 任务4 3用运算符过滤信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下T SQL语句 查询04网络 2 班性别为 男 的学生信息 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 55 任务4 3用运算符过滤信息 任务实施与拓展 24 04 2020 精品课件 56 任务4 3用运算符过滤信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下SQL语句 查询04网络 2 班年龄范围从24 26岁的学生信息 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 57 任务4 3用运算符过滤信息 任务实施与拓展 用下述T SQL语句也可以得到上图所示显示结果 24 04 2020 精品课件 58 任务4 3用运算符过滤信息 任务实施与拓展 24 04 2020 精品课件 59 任务4 3用运算符过滤信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下SQL语句 根据姓名的部分信息查询个别学生的所有信息 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 60 任务4 3用运算符过滤信息 任务实施与拓展 如果将上述查询语句中的条件 StuNameLIKE 刘 改成 StuNameLIKE 刘 结果会怎样 24 04 2020 精品课件 61 任务4 3用运算符过滤信息 任务实施与拓展 将上述T SQL语句改为下述形式 查询结果如下图所示 24 04 2020 精品课件 62 任务4 3用运算符过滤信息 任务实施与拓展 任务拓展1 空值判断 如果要显示 课程信息表 中 课程描述 字段不为空的相关课程信息 可以用下述T SQL语句实现 查询结果如下图所示 24 04 2020 精品课件 63 任务4 3用运算符过滤信息 任务实施与拓展 任务拓展2 通配符 如果要查询 学生信息表 中04网络 2 班中邮政编码为 23 或 24 开头的学生信息 可以用下述T SQL语句实现 查询结果如下图所示 24 04 2020 精品课件 64 任务4 3用运算符过滤信息 任务实施与拓展 当然也可以用下述T SQL语句实现 24 04 2020 精品课件 65 任务4 4 任务4 4运用分类统计功能查询学生成绩 24 04 2020 精品课件 66 任务4 4用分组统计查询成绩 由于每个学年结束要根据课程成绩评定奖学金 班主任每个学年都要对自己班级学生的成绩进行统计分析 然后初定学年奖学金获得者的人选 根据教务处的规定 一等综合素质奖学金的条件是各门课程平均成绩在85分以上 二等综合素质奖学金的条件是各门课程平均成绩在80 85分 三等综合素质奖学金的条件是各门课程平均成绩在75 80分 可以按照以下步骤进行 按照学号统计班内每个学生的平均成绩 从高到低排序 筛选出班内平均成绩在不同分数段的学生 85分以上 含85分 80 85分 含80分 75 80分 含75分 假如王玲老师同时做了两个班级的班主任 她除了每个班按照步骤 进行统计外 还要根据两个班的统计情况 按班级分组汇总75分以上 含75分 的学生个数 以 04网络 1 班和04网络 2 班 为例 请用T SQL语句帮班主任实现上述查询功能 要求显示学生的 StuID ClassID CourseID 字段和计算列 平均成绩 任务描述与分析 24 04 2020 精品课件 67 任务4 4用分组统计查询成绩 GROUPBY子句具有对查询结果进行分组统计查询的功能 通常与统计函数一起使用 使用GROUPBY子句的T SQL查询结构如下 相关知识与技能 GROUPBY子句 GROUPBY子句是分组统计查询子句 查询将按照 分组字段 的内容进行分组统计 GROUPBY子句中不能使用列别名 24 04 2020 精品课件 68 任务4 4用分组统计查询成绩 HAVING子句相当于一个用于组的WHERE子句 它指定了组或聚合的查询条件 但WHERE子句设置的查询条件在GROUPBY子句之前发生作用 HAVING子句作用于分组 对分类汇总后的每一个分组进行条件筛选 故它必须与GROUPBY配合使用才有意义 使用HAVING子句的T SQL查询结构如下 相关知识与技能 HAVING子句 HAVING子句可以包含聚集函数 而WHERE子句不可以 24 04 2020 精品课件 69 任务4 4用分组统计查询成绩 COMPTUE子句使用聚合函数在查询的结果集后面生成汇总行 并附加在查询结果集的最后 作为单独的一行记录显示合计结果 类似于在EXECL表中对某一列数据求和或求平均值的计算形式 使用COMPUTEBY子句的T SQL查询结构如下 相关知识与技能 COMPUTEBY子句 COMPUTEBY子句使您得以用同一SELECT语句既查看明细行 又查看汇总行 24 04 2020 精品课件 70 任务4 4用分组统计查询成绩 在分类统计查询中经常使用聚合函数 常用的聚合函数定义如下表所示 相关知识与技能 聚合函数 聚合函数是SQLSERVER提供用户使用的一类非常重要的标准函数 运用聚合函数可以对分类得到的一组值进行统计计算 并返回统计值 聚合函数经常与SELECT语句的GROUPBY子句一起使用 注意 聚合函数中不能使用字段别名 24 04 2020 精品课件 71 任务4 4用分组统计查询成绩 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下T SQL语句 按照学号统计班内每个学生的平均成绩 并从高到低排序 24 04 2020 精品课件 72 任务4 4用分组统计查询成绩 任务实施与拓展 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 73 任务4 4用分组统计查询成绩 任务实施与拓展 3 由于 平均成绩 只需要保留两位小数 将上述T SQL语句改成下述形式 4 执行后的查询结果如下图所示 24 04 2020 精品课件 74 任务4 4用分组统计查询成绩 任务实施与拓展 注意 在使用GROUPBY子句时 前面的SELECT子句中显示的列必须是聚合函数 或者是参与的分类字段 即GROUPBY子句中出现的字段 否则会出错 24 04 2020 精品课件 75 任务4 4用分组统计查询成绩 任务实施与拓展 此处 ROUND 数字表达式 精度 是一个系统内置函数 返回数字表达式的值 并将其四舍五入为指定的长度或精度 参数 数字表达式 为精确数字或近似数字数据类型类别的表达式 参数 精度 是 数字表达式 将要四舍五入的精度 当参数 精度 为正数时 数字表达式 的值四舍五入为 精度 所指定的小数位数 当参数 精度 为负数时 数字表达式 的值则按参数 精度 所指定的在小数点的左边四舍五入 如ROUND 9876 2 返回的值为9900 当然 ROUND 函数还有其它用法 可以参考SQLServer中的联机帮助 24 04 2020 精品课件 76 任务4 4用分组统计查询成绩 如果将下述SELECT子句中增加一个查询字段 CourseID 可能会出现什么问题 任务实施与拓展 24 04 2020 精品课件 77 任务4 4用分组统计查询成绩 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下T SQL语句 筛选出班内平均成绩在不同分数段的学生 24 04 2020 精品课件 78 任务4 4用分组统计查询成绩 任务实施与拓展 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 24 04 2020 精品课件 79 任务4 4用分组统计查询成绩 任务实施与拓展 任务拓展1 学期结束后 班主任要查询自己班级 如04网络 1 班 每门课程的平均成绩 最高分和最低分 可以用下述T SQL语句实现 MAX和MIN函数 24 04 2020 精品课件 80 任务4 4用分组统计查询成绩 任务实施与拓展 查询结果如下图所示 24 04 2020 精品课件 81 任务4 4用分组统计查询成绩 任务实施与拓展 如果班主任要查询自己班级 如04网络 1 班 每个学生已经选修的课程门数 可以可以用下述T SQL语句实现 COUNT函数 任务拓展2 24 04 2020 精品课件 82 任务4 4用分组统计查询成绩 任务实施与拓展 查询结果如下图所示 24 04 2020 精品课件 83 任务4 5 任务4 5多表联合查询班级信息和课程成绩 24 04 2020 精品课件 84 任务4 5多表联合查询信息 教务处负责学籍管理的张老师经常要通过下述三个子任务完成相关的信息查询 查询 TB Class 表中的班级基本情况 要求显示的字段为 DeptName ClassName 查询各个系的班级情况 要求所有系的情况都列出来 要求显示的字段为 DeptName ClassName 然后统计各个系的班级数 没有班级的系班级数显示为0 查询 TB Grade 表中单个课程班的成绩 要求显示的字段为 StuID StuName ClassName CourseName TotalScore 查询的表用相应的别名 按班级编码排序 查询 TB Grade 表中所有课程班的平均成绩 要求显示的字段为 CourseClassID CourseName TeacherName 和计算列 平均成绩 任务描述与分析 24 04 2020 精品课件 85 任务4 5多表联合查询信息 在实际查询应用中 用户所需要的数据并不全部都在一个表或视图中 而可能在多个表中 这时就需要使用多表查询 在进行多表联合查询操作时 最简单的连接方式是在SELECT子句列表中引用多个表的字段 在FROM子句中用逗号将多个不同的基表隔开 如果用WHERE子句创建一个相关连接 则可以使查询结果更加有效 相关连接是指使用一个表的主键与另外一个表中的外键建立连接 以保证表之间数据的参照完整性 在进行基本的连接查询操作时 可以遵循下述基本原则 SELECT子句列表中 在来自不同表的字段前加上相应的表名称 FROM子句中应包括所有用到的表 WHERE子句应定义相关的主外键连接 多表连接分为交叉连接 内连接和外连接三种情况 相关知识与技能 24 04 2020 精品课件 86 任务4 5多表联合查询信息 交叉连接查询是指返回两个表的笛卡儿乘积作为查询结果的连接方式 生成的记录集中包含两个源表中行的所有可能的组合 交叉连接查询的一般格式为 相关知识与技能 交叉连接 或 24 04 2020 精品课件 87 任务4 5多表联合查询信息 交叉连接的实际使用意义并不大 内连接是一种最常用的数据连接查询方式 内连接在交叉连接的基础上 通过对两个表之间的共性列 主外键 进行等值运算 实现两个表之间的连接操作 消除与另一个表的任何不匹配的数据行 内连接运算符是INNERJOIN或JOIN 内连接的一般格式为 相关知识与技能 内连接 或 24 04 2020 精品课件 88 任务4 5多表联合查询信息 外连接会返回FROM子句中提到的至少一个表的所有符合查询条件的数据行 包括连接中不匹配的数据行 在外连接中 参与连接的表有主从之分 查询结果返回两个表所有匹配的行 以及主表中的所有不匹配的行 从表的列填上空值 外连接分为左外连接 右外连接和完全连接 相关知识与技能 外连接 左外联接使用LEFTOUTERJION关键字对两个表连接 返回所有匹配的行 以及JION关键字左边表中的所有不匹配行 右外联接使用RIGHTOUTERJION关键字对两个表连接 返回所有匹配的行 以及JION关键字右边表中的所有不匹配行 完全连接使用FULLOUTERJION关键字对两个表连接 返回所有匹配的行 以及JION关键字两边表中的所有不匹配行 24 04 2020 精品课件 89 任务4 5多表联合查询信息 使用SELECT语句进行多表数据查询时 可以使用别名来简化FROM子句中的表的名称 使用列别名有二种方式 表名AS表别名表名表别名 相关知识与技能 表别名 24 04 2020 精品课件 90 任务4 5多表联合查询信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下T SQL语句 查询已有班级的基本情况 24 04 2020 精品课件 91 任务4 5多表联合查询信息 任务实施与拓展 2 单击 执行 按钮即可在数据库中查询得到相应的结果 如下图所示 3 如果将上述T SQL语句中WHERE子句去掉 会得到什么查询结果 24 04 2020 精品课件 92 任务4 5多表联合查询信息 任务实施与拓展 子任务 1 打开SSMS窗口 在查询编辑器中输入以下T SQL语句 查询各个系的班级情况 并统计各个系的

温馨提示

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

评论

0/150

提交评论