数据库基础

一、基本概念

  1. 数据库(DB):长期存储在计算机内、有组织、可共享的数据集合。

  2. 数据库管理系统(DBMS):管理数据库的软件,如 MySQL、Oracle、SQL Server、PostgreSQL。

  3. 数据库系统(DBS):DB + DBMS + 应用程序 + 管理员 + 用户。

  4. 数据模型三要素:数据结构、数据操作、完整性约束。

二、常见数据模型

• 层次模型:树形结构,一对多

• 网状模型:图结构,多对多

• 关系模型:用二维表表示(主流)

三、关系数据库核心

  1. 关系 = 表

◦ 行 = 元组 = 记录

◦ 列 = 属性 = 字段

  1. 键(关键字)

◦ 超键:能唯一标识元组的属性集

◦ 候选键:最小超键,无多余属性

◦ 主键(Primary Key):选中的候选键,唯一非空

◦ 外键(Foreign Key):引用另一表主键,用于关联

  1. 三大完整性

◦ 实体完整性:主键非空唯一

◦ 参照完整性:外键要么为空,要么是对应主键值

◦ 用户自定义完整性:如取值范围、唯一、非空等

四、SQL 基础

  1. 分类

• DDL:数据定义(CREATE、ALTER、DROP)

• DML:数据操作(INSERT、UPDATE、DELETE、SELECT)

• DCL:数据控制(GRANT、REVOKE)

• TCL:事务控制(COMMIT、ROLLBACK)

  1. 常用语句

• 建表:CREATE TABLE 表名(字段 类型 约束);

• 查询:SELECT * FROM 表名 WHERE 条件 GROUP BY 分组 HAVING 筛选 ORDER BY 排序;

• 插入:INSERT INTO 表名(字段) VALUES(值);

• 更新:UPDATE 表名 SET 字段=值 WHERE 条件;

• 删除:DELETE FROM 表名 WHERE 条件;

  1. 常用函数

• 聚合:COUNT、SUM、AVG、MAX、MIN

• 分组:GROUP BY

• 排序:ORDER BY ASC/DESC

五、三大范式(1NF、2NF、3NF)

  1. 1NF:列不可再分,原子性

  2. 2NF:满足1NF,非主属性完全依赖主键(消除部分依赖)

  3. 3NF:满足2NF,非主属性不传递依赖主键(消除传递依赖)

六、索引

• 作用:加快查询,减慢增删改

• 类型:主键索引、唯一索引、普通索引、复合索引

• 原则:经常查询、选择性高的字段建索引;频繁修改、重复值多的少建

七、事务(Transaction)

四大特性 ACID:

• A原子性:要么全做,要么全不做

• C一致性:执行前后数据合法

• I隔离性:事务间互不干扰

• D持久性:提交后永久生效

八、并发问题 & 隔离级别

• 问题:脏读、不可重复读、幻读

• 隔离级别(由低到高):

读未提交 → 读已提交 → 可重复读 → 串行化

九、连接查询

• INNER JOIN:内连接,两边都匹配

• LEFT JOIN:左连接,左表全显示

• RIGHT JOIN:右连接,右表全显示

• FULL JOIN:全连接(部分数据库支持)

十、视图 & 存储过程

• 视图:虚拟表,简化查询,控制权限

• 存储过程:预编译 SQL 集合,提高效率

相关推荐
额,不知道写啥。32 分钟前
从区间加一次函数到区间加多次函数最值-----区间数据结构与函数的一些东西(《浅谈函数最值的动态维护》的学习笔记)
数据结构·笔记·学习
LuminousCPP40 分钟前
数据结构-二叉树(五):查找、销毁与前序序列建树
c语言·数据结构·笔记·二叉树
Nontee8 小时前
MySQL 插入冲突了怎么办?两种处理方式入门笔记
数据库·笔记·mysql
ltl8 小时前
Parquet 文件格式:row group、编码与谓词下推索引
数据库
ltl8 小时前
PostgreSQL Join 路径:优化器如何选中 Nested Loop
数据库
浔溺9 小时前
al+大数据每日学习笔记26
笔记·学习
ltl9 小时前
RocksDB 生产嵌入:Flink、TiKV 与 Kafka Streams 怎么用
数据库
老当益壮梁奶奶9 小时前
Linux软件编程学习笔记(七):线程分离与线程间通信详解
linux·c语言·c++·笔记·学习
sel_910 小时前
【多轮对话论文导读(三)】多轮对话与Agent论文阅读笔记:用户模拟、轨迹生成与长期记忆
论文阅读·人工智能·笔记·深度学习·算法·机器学习
zzm62810 小时前
《SIGIR 2018论文精读|深度学习点击序列模型:对搜索页面点击行为进行序列建模》
笔记·深度学习·推荐系统·论文精读