期末速查手册

MySQL 数据库核心知识点总结

SQL 基础 · 数据查询 · 视图索引 · 事务并发 · 安全管理 · 设计规范化

8 知识模块
20+ 核心考点
4 必考题型
01

数据库系统基础(第1章)

核心概念

数据库系统(DBS) = DB(数据库) + DBMS(数据库管理系统) + 应用程序 + DBA(数据库管理员) + 用户 + 软硬件

DBA 核心职责:设计、建立、管理、维护数据库。

三级模式两级映像

模式层级对应数据库对象说明
外模式视图用户可见的局部逻辑结构,实现数据隔离
模式(逻辑模式)基本表全体数据的全局逻辑结构,一个库仅一个
内模式(存储/物理模式)索引数据的物理存储结构与存取方式

主流数据库产品

MySQL Oracle SQL Server 华为 GaussDB 阿里 OceanBase 腾讯 TDSQL
02

关系模型基础(第2章)

关系五大性质

  1. 列的分量来自同一域,不同属性可同域
  2. 列的顺序可交换
  3. 行(元组)的顺序可交换
  4. 不允许完全相同的元组
  5. 每个分量必须是原子数据项(不可再分)

码(键)

码的关系

候选码:能唯一标识元组的属性(组),可有多个。

主码(主键):从候选码中选定一个,一个关系只有一个。

结论:主码必是候选码,候选码不一定是主码。

三大完整性约束 必考

① 实体完整性
主码的值不能为空,也不能部分为空。
② 参照完整性
外码取值要么等于被参照表主码的某个值,要么为空(如选课表的学号必须存在于学生表)。
③ 用户自定义完整性
业务语义约束(如年龄范围、性别限定)。
03

SQL基础与表操作(第3-5章)

SQL核心动词分类

功能动词
数据查询SELECT
数据定义CREATEDROPALTER
数据操纵INSERTUPDATEDELETE
数据控制GRANTREVOKE

存储引擎

决定数据存储、索引、更新查询的底层机制。

注意
Memory引擎:数据存于内存,数据库重启/崩溃后数据全部丢失

常用数据类型

INT — 数值型 CHAR(n) — 定长字符串 VARCHAR(n) — 变长字符串 DATE — 日期型
提醒
字符串类型 必须指定长度CHAR(n)VARCHAR(n)

表约束(建表必考)

约束说明
NOT NULL非空约束
UNIQUE唯一,教材规定最多允许一个 NULL(MySQL允许多个,考试以教材为准)
PRIMARY KEY主键 = 非空 + 唯一
FOREIGN KEY外键,实现参照完整性

核心操作语法

-- 创建表
CREATE TABLE 表名 (字段名 类型 约束, ...);

-- 修改表结构
ALTER TABLE 表名 ...;

-- 修改表名
ALTER TABLE 旧表名 RENAME TO 新表名;

-- 删除表(结构+数据)
DROP TABLE 表名;

-- 修改数据
UPDATE 表名 SET 字段名=值 WHERE 条件;

-- 删除数据(仅数据,保留结构)
DELETE FROM 表名 WHERE 条件;
易混淆区分
DELETE 删数据不删表;DROP TABLE 删整表(结构+数据全删)。
04

数据查询(第6章)—— SQL大题核心

单表查询

SELECT [DISTINCT] 字段列表 FROM 表名 WHERE 条件;
  • DISTINCT 消除重复行
  • 逻辑运算符优先级:NOT > AND > OR
  • 模糊查询:LIKE / NOT LIKE

多表连接查询(4种)

连接类型说明
交叉连接(笛卡尔积)无条件拼接,行数=两表行数乘积,列数=两表列数和,无业务意义
内连接仅保留满足连接条件的匹配行
外连接保留一方全部行,另一方无匹配补 NULL
自然连接按同名字段自动匹配的内连接,自动去重列
自连接
一张表与自身等值连接,常用于层级查询(如查找员工及其上级)。

子查询(嵌套查询)

类型执行方式特点
非相关子查询子查询先执行 1次结果供父查询使用,可独立运行
相关子查询父查询每遍历一行执行一次依赖父查询字段,不可独立运行
05

视图与索引(第7章)

视图(View)

本质
由基本表导出的虚表,不存储数据,只保存定义语句。
  • 作用:隐藏敏感字段,提升数据安全性
  • 创建:CREATE VIEW 视图名 AS 查询语句;

索引(Index)

核心
对应内模式,占用物理存储空间。以空间换时间提升查询效率。
  • 创建:CREATE INDEX 索引名 ON 表名(字段名);
  • 并非越多越好:每个索引占空间,且降低增删改效率(需同步维护索引)
06

数据库安全管理(第8章)

安全性定义

保护数据库,防止非法使用造成的数据泄露、更改或破坏。

MySQL权限系统表(层级从高到低)

mysql.user> mysql.db> mysql.tables_priv> mysql.columns_priv> mysql.procs_priv

全局级别 → 数据库级别 → 表级别 → 字段级别 → 存储过程/函数级别

用户与权限操作 必考代码

-- 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

-- 删除用户
DROP USER '用户名'@'主机名';

-- 授予权限
GRANT 权限名 ON 对象 TO 用户;

-- 回收权限
REVOKE 权限名 ON 对象 FROM 用户;

角色管理

角色 = 权限的集合,用于批量管理。

CREATE ROLE 角色名;
SET DEFAULT ROLE 角色名 TO 用户名;
DROP ROLE 角色名;
07

事务与并发控制(高频简答+理解)

事务定义

由一条或多条 SQL 组成的逻辑执行单元,是业务的最小操作集合。

事务控制语句

START TRANSACTION;  -- 开启
COMMIT;             -- 提交(永久生效)
ROLLBACK;           -- 回滚(撤销未提交修改)

ACID 四大特性 每年必考简答

A
原子性
事务中操作不可分割,要么全执行,要么全不执行
C
一致性
事务前后数据库从一个一致状态转到另一个一致状态
I
隔离性
并发事务互不干扰
D
持久性
提交后修改永久生效,故障不影响

隔离级别(由低到高)

READ UNCOMMITTED< READ COMMITTED< REPEATABLE READ< SERIALIZABLE

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

实现方式:封锁机制

封锁机制

锁类型说明
排他锁(X锁/写锁)加锁后当前事务可读可写,其他事务不能加任何锁
共享锁(S锁/读锁)加锁后当前事务仅可读,其他事务可加S锁但不能加X锁
三级封锁协议
可同时解决丢失更新、脏读、不可重复读问题。

死锁与活锁

类型说明
死锁两个事务互相等待对方释放锁,永远阻塞
活锁事务长期等待锁,始终无法获取
08

数据库设计与规范化(第11-13章,大题考点)

数据库设计概述

核心工作:结构设计 + 行为设计

直观设计法 规范设计法 计算机辅助设计法 AI辅助设计法

关系模式规范化

  • 目的:解决数据冗余、插入异常、删除异常、更新异常
  • 规范化定义:将低一级范式分解为高一级范式集合
  • 基本原则一事一地——一个关系只描述一个实体或一种联系

E-R模型(概念设计,画图大题)

E-R图三要素

要素图形说明
实体型矩形实体对象
属性椭圆形实体特征
联系菱形实体间关联关系
实体
矩形
属性
椭圆形
联系
菱形
E-R图合并冲突
最常见命名冲突(同名异义、异名同义),需统一修正。

范式判断(大题)

根据函数依赖判断关系模式属于第几范式(1NF、2NF、3NF、BCNF等),考试会给出依赖关系要求分析。

TIP

复习策略提示

  1. 题型分布:选择/判断(概念)、简答(ACID、三大完整性、三级模式等)、SQL代码(建表、查询、权限)、设计大题(ER图、范式)
  2. 答题规范:教材理论与MySQL实际行为可能存在差异(如 UNIQUE 空值数量),答题一律以教材为准
  3. 全面覆盖:AB卷随机,不可偏废,重点掌握课堂例题
核心速记
  • 三级模式:外模式→视图、模式→基本表、内模式→索引
  • 三大完整性:实体(主码非空)、参照(外码匹配)、用户自定义
  • ACID:原子性、一致性、隔离性、持久性
  • DELETE 删数据,DROP TABLE 删整表
  • 索引:空间换时间,不是越多越好