ID: 19564784

第六单元 高级查询 课件(共45张PPT)- 《网站数据库应用技术SQL Server》同步教学(水利水电版)

日期:2026-02-11 科目: 类型:课件 查看:66次 大小:919813B 来源:二一课件通
预览图 1/12
水利水电,教学,同步,网站数据库应用技术SQL Server,第六,单元
  • cover
(课件网) 第六单元 高级查询 任务6.1多表连接查询 任务6.2使用子查询 6.1.1 情景描述 6.1.2问题分析 6.1.3 解决方案 6.1.4 知识总结 6.1.5 应用实践 任务6.1 多表连接查询 在学生信息管理系统里,需要每学期为每位老师安排教学任务。针对学校的具体情况,需要在排课时间段显示还没有排课的老师的信息,保证每个老师都有教学任务。 6.1.1 情景描述 为了解决上述问题,需要完成以下任务: 1.查询显示所有老师的排课信息,不管有没有教学任务,都要显示老师的信息,如果有排课任务,就在授课表中有对应的课程编号信息;如果没有排课任务,就在对应的课程编号字段显示为NULL。 2.再用条件“课程编号 IS NULL”过滤没有教学任务的教师信息。 3.执行查询语句。 6.1.2问题分析 1.打开SQL Server Management Studio,单击“对象资源管理器”中的“数据库”文件夹下的数据库“学生管理”; 2.单击工具栏上的“新建查询”命令,打开“查询编辑器”; 3.在“查询编辑器”上输入以下代码: 6.1.3 解决方案 4.单击工具栏上的【执行】按钮,如图所示。 SELECT js.教师编号,教师姓名,职称,sk.班级代码,sk.课程编号 FROM 教师 AS js LEFT JOIN 授课 AS sk ON js.教师编号=sk.教师编号 WHERE sk.课程编号 IS NULL 内连接 外连接 交叉连接 6.1.4 知识总结 内连接(INNER JOIN)将两个表中满足连接条件的记录组合在一起,通过比较数据源表间公共列的值,从多个源表检索符合条件的行的操作。 内连接查询可以通过两种方式实现 一种在WHERE子句中指出连接条件 SELECT 字段列表 FROM 表名列表 WHERE 连接条件 另外一种使用INNER JOIN关键字查询。 SELECT 字段列表 FROM 表名1 INNER JOIN 表名2 ON 表名1.字段名=表名2.字段名 内连接 SELECT 学号,姓名,性别,班级名称 FROM 学生,班级 WHERE 学生.班级编号=班级.班级代码 【例6-1】在学生管理数据库里查询显示学生的学号、姓名、性别、班级名称。 ①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码: ②单击工具栏上的【执行】按钮,运行结果如图所示。 说明: FROM子句中的表名是要查询的字段所在的表。 可以通过“表名.列名”来引用表中的列,防止两个表中都有同样的字段,引起歧义。 可以在表名的后面使用AS关键字来为表定制表别名,那么就可以用“表别名.列名”来引用表中的列。 SELECT 班级代码,班级名称,b.专业代码,专业名称 FROM 班级 AS b ,专业 AS z WHERE b.专业代码=z.专业代码 【例6-2】在学生管理数据库里查询显示班级代码、班级名称、专业代码、专业名称。 ①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码: ②单击工具栏上的【执行】按钮,运行结果如图所示。 说明: 表名后面用AS关键字对表重命名,用b代替班级表,用z代替专业表。 使用“表别名.列名”来区分班级表和专业表共有的“专业代码”列。 SELECT xs.学号,姓名,kc.课程编号,课程名称,成绩 FROM 选课 AS xk , 学生 AS xs ,课程 AS kc WHERE xk.学号=xs.学号 AND xk.课程编号 =kc.课程编号 【例6-3】在学生管理数据库里查询显示学号、姓名、课程编号、课程名、成绩。 ①打开SQL Server Management Studio,在工具栏上单击“新建查询”按钮,打开SQL编辑器,编写如下代码: ②单击工具栏上的【执行】按钮,运行结果如图所示。 说明: 查询显示的结果在选课表、学生表和课程表三张表中。 表名后面用AS关键字对表重命名,用xk代替选课表,用xs代替学生表,用kc代替课程表。 选课表和学生表都有“学号”字段,在查询语句中使用到“学号”字段,就用“表别名.列 ... ...

~~ 您好,已阅读到文档的结尾了 ~~