目录

  • 1 数据库系统概论
    • 1.1 数据库基本概述
    • 1.2 数据模型
    • 1.3 三级模式与两级映像
  • 2 关系数据库
    • 2.1 关系数据库基础
    • 2.2 关系代数运算
  • 3 关系数据库标准语言SQL
    • 3.1 数据库定义与简单查询
    • 3.2 连接查询
    • 3.3 数据更新
    • 3.4 视图和索引
  • 4 数据库安全性
    • 4.1 数据库安全性
  • 5 数据库完整性
    • 5.1 数据库完整性
  • 6 关系数据库理论
    • 6.1 函数依赖
    • 6.2 函数依赖的公理系统
    • 6.3 范式理论
  • 7 数据库设计
    • 7.1 数据库设计
  • 8 数据库编程
    • 8.1 存储过程
    • 8.2 触发器
  • 9 关系查询处理和查询优化
    • 9.1 关系查询处理和查询优化
  • 10 数据库恢复技术
    • 10.1 数据库恢复技术
  • 11 并发控制
    • 11.1 并发控制
连接查询

连接查询指的是在两个或者多个表之间的查询,在连接之前,我们要分清关系表的主键和外键,也就是表的内部联系和表之间的联系。

我们以学习选课数据库的以下三个关系为例:



3.2.1 连接查询例题导入(6分钟)

题目1:查询选修课程为‘C01’的学生的姓名和成绩。

                 从上面的例子,我们再来总结一下连接查询的SQL语法:

首先,找查询的过程中的隐形和显性条件,看相关的属性涉及的关系表,然后再看关系表中涉及的公共属性,按照语法:

SELECT 属性列集合

FROM  涉及的表集合

WHERE 公共属性相等+其他条件集合

如本例题的:

SELECT S.Sno,SC.grade //S.Sn因为涉及共同属性,不能省略写成Sno,但SC.grade中,可以写成grade.

FROM S,SC//S和SC必须都要有,顺序可以随意

WHERE SC.Sno=SC.Sno and  Cno='C01'// SC.Sno=SC.Sno必须要有,否则就不是等值连接,答案会出错。条件中and连接,条件顺序随意,但是不能少条件。

连接查询的注意事项(12分钟)



3.2.2  题目2:查询选修课程为‘数据结构’的学生的姓名和成绩。(6分钟)

以下是涉及到三个关系表的操作,步骤和前面的一致,只是多了一个表。通过前两个关系表建立的联系,再和第三个关系表建立联系。第一个表和第三个表无法直接建立联系,必须找到起到桥梁作用的关系表。

3.2.3 自身连接(6分钟)

涉及到自身和自身的连接的问题,同学们可以结合笛卡尔积和选择来进行。

延伸部分-嵌套查询