笔面考点总结(二)数据库原理篇

前言

本篇是笔面考点总结系列的第二篇,主要总结数据库原理的考点。

数据库篇

数据库范式

  • 第一范式确保属性的原子性约束,即要求数据库表中的字段具有原子性,不可再分解。
  • 第二范式确保表中的每列都和主键相关,而不能只与主键的某一部分相关(针对联合主键而言)。
  • 第三方式确保每列都和主键列直接相关,而不是间接相关

总体上来说就是,第一范式不可拆分,第二范式完全依赖,第三范式消除传递依赖。

表联结查询(以 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 JOINRIGHT OUTER JOIN

参考文献

posted @   ZachLim  阅读(217)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
历史上的今天:
2017-03-19 大数运算(1)—— 加法篇
点击右上角即可分享
微信分享提示