Access数据库基础及应用教程第2版米红娟电子课件第6章节查询.pptVIP

  • 4
  • 0
  • 约2.39万字
  • 约 124页
  • 2017-11-28 发布于广东
  • 举报

Access数据库基础及应用教程第2版米红娟电子课件第6章节查询.ppt

Access数据库基础及应用 6.6.5 多表查询 2. 两张表的联接查询 为简化输入,在SELECT命令中允许使用表的别名。别名可以在FROM子名中定义,在查询中使用。 格式为: SELECT 目标列 FROM 表名1 别名1,表名2 别名1 WHERE 别名1.字段名1=别名2.字段名2 上例也可以写成: SELECT xs.学号,姓名,课程编号,分数 FROM 学生 xs ,成绩 cj WHERE xs.学号=cj.学号 Access数据库基础及应用 6.6.5 多表查询 2. 两张表的联接查询 例6-44 查询分数在85分以上学生的学号、姓名、所修课程的课程编号和分数。 分析:在上例的基础上给WHERE子句增加一个条件即可。 SELECT xs.学号,姓名,课程编号,分数 FROM 学生 xs ,成绩 cj WHERE xs.学号=cj.学号 AND 分数8 Access数据库基础及应用 6.6.5 多表查询 2. 两张表的联接查询 格式2:使用JOIN ON 子句。 SELECT 目标列 FROM 表名1 INNER JOIN | LEFT JOIN | RIGHT JOIN 表名2 ON 表名1.字段名1=表名2.字段名2 Access数据库基础及应用 6.6.5 多表查询 2. 两张表的联接查询 使用格式2,例6-44则应选用INNER JOIN选项,命令也可以写成: SELECT 学生.学号,姓名,课程编号,分数 FROM 学生 INNER JOIN 成绩 ON 学生.学号=成绩.学号 WHERE 分数85 Access数据库基础及应用 6.6.5 多表查询 3. 两张以上表间的联接查询 多表进行联接查询时,也可以使用WHERE子句和JOIN ON子句两种格式实现。 格式1: SELECT 目标列 FROM 表名1 [别名1],表名2 [别名2],表名3 [别名3] WHERE 联接条件1 AND 联接条件2 AND 筛选条件 Access数据库基础及应用 6.6.5 多表查询 3. 两张以上表间的联接查询 例6-45 查询所有学生的姓名、所修课程的课程名称和分数在85分以上的所得分数。 SELECT 姓名,课程名称,分数 FROM 学生,成绩,课程 WHERE 学生.学号=成绩.学号 AND 课程.课程编号=成绩.课程编号 AND 分数85 Access数据库基础及应用 6.6.5 多表查询 3. 两张以上表间的联接查询 格式2: SELECT 目标列 FROM 表名1 [别名1] INNER JOIN | LEFT JOIN | RIGHT JOIN (表名2 [别名2] INNER JOIN | LEFT JOIN | RIGHT JOIN 表名3 ON 表名2.字段名1=表名3.字段名2) ON 表名1.字段名1=表名2.字段名2 WHERE 筛选条件 Access数据库基础及应用 6.6.5 多表查询 3. 两张以上表间的联接查询 使用格式2,例6-45中的命令也可以写成: SELECT 姓名,课程名称,分数 FROM 学生JOIN (成绩 JOIN 课程ON成绩.课程编号=课程.课程编号) ON 学生.学号=成绩.学号 WHERE 分数85 Access数据库基础及应用 6.6.6 嵌套查询 嵌套查询是将一个SELECT语句包含在另一个SELECT语句的WHERE子句中,嵌套在内层的查询称为子查询。子查询(内层查询)的结果做为建立其父查询(外层查询)的条件,因此,子查询的结果必须具有确定的值。 利用嵌套查询可以将几个简单查询构成一个复杂查询,从而增强SQL的查询能力。 Access数据库基础及应用 6.6.6 嵌套查询 例6-46 查询“谢聚军”同学所修课程的“课程编号”及“分数”。 SELECT 学号, 课程编号, 分数 FROM 成绩 WHERE 学号=(SELECT 学号 FROM 学生 WHERE 姓名=谢聚军) 该命令的执行过程是:先执行子查询,从“学生”表中找出“谢聚军”的学号,然后执行外层查询,在“成绩”表中找出学号值等于子查询结果的记录,并提取这些记录的“课程编号”及“分数”字段值。 Access数据库基础及应用

文档评论(0)

1亿VIP精品文档

相关文档