笔面考点总结(二)数据库原理篇
前言
本篇是笔面考点总结系列的第二篇,主要总结数据库原理的考点。
数据库篇
数据库范式
- 第一范式确保属性的原子性约束,即要求数据库表中的字段具有原子性,不可再分解。
- 第二范式确保表中的每列都和主键相关,而不能只与主键的某一部分相关(针对联合主键而言)。
- 第三方式确保每列都和主键列直接相关,而不是间接相关。
总体上来说就是,第一范式不可拆分,第二范式完全依赖,第三范式消除传递依赖。
表联结查询(以 MySQL 标准为例子)
自联结查询
自联结查询是表与自身进行联结的查询,例如从课程表中找出课程号及其对应先修课程名。
SELECT x.no, y.name
FROM course AS x, course AS y
WHERE x.pcno = y.cno;
内联结查询
内联结查询是表间进行数据比较,得到匹配结果的查询,而根据比较方式不同,又分为等值联结、自然联结和不等联结。
- 等值联结即表间数据进行相等比较,得到匹配结果的查询,包括重复列。
- 自然联结就是消除重复列的等值联结。
- 不等联结就是表间数据进行除相等以外的比较,得到匹配结果的查询,也包括重复列。
注:MySQL 数据库中可使用关键字 INNER JOIN
进行内联结查询。
外联结查询
外联结查询是可得到表间无关联行的查询,而根据指定包含那个表的所有行,又分为左联结、右联结和全联结。
- 左联结即匹配左边表的所有行的查询,右边表无对应数据则置为 NULL 。
- 右联结即是与左联结相反的查询。
- 全联结即匹配左右两边表的所有行的查询。
注:MySQL 数据库中可使用关键字 OUTER JOIN
进行内联结查询,而左右联结分别为 LEFT OUTER JOIN
和 RIGHT OUTER JOIN
。
参考文献