乐途乐途
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
    • HTTP协议
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • MyBatis
    • Spring
    • Spring MVC
    • Maven 入门
    • Maven 进阶
    • Java 设计模式
  • 缓存

    • Redis
联系
阿里云
  • 学习路径
  • 第1章 数据库基础与安装

    • MySQL 简介
    • MySQL 5.6 到 5.7 到 8.0 关键差异速查
    • 安装 MySQL 5.7
    • 连接与断开服务器
    • 创建数据库
    • 创建数据表
    • 数据库与数据表
    • 加载数据
    • 获取数据库信息
    • 批处理模式
    • SHOW 语句汇总
    • FLUSH 与 RESET 语句
    • my.cnf 核心参数
    • 字符集与排序规则
  • 第2章 SQL基础查询

    • SELECT
    • WHERE
    • ORDER BY
    • LIMIT
    • COUNT
    • 聚合函数
    • 比较运算符
    • 逻辑运算符
    • 算术运算符
    • 模式匹配
    • NULL 值处理
    • UPDATE
    • DELETE
    • REPLACE
    • SELECT INTO
  • 第3章 数据类型与运算符

    • 数值类型
    • 字符串类型
    • 日期时间类型
    • BIT 类型
    • ENUM 类型
    • SET 类型
    • JSON 类型
    • 类型转换
  • 第4章 函数与表达式

    • 字符串函数
    • 数值函数
    • 日期函数
    • 全文检索函数
  • 第5章 高级查询与子查询

    • JOIN
    • 子查询
    • UNION
    • GROUP BY
    • HAVING
    • DISTINCT
  • 第6章 表与索引

    • 数据定义语言
    • 修改表结构
    • 视图
    • 修改视图与检查选项
    • 外键
    • 索引
    • 唯一索引
    • 复合索引
    • 存储引擎对比
    • 分区表
    • 第一范式与第二范式
    • 第三范式与 BC 范式
    • 反范式设计
  • 第7章 存储过程与函数

    • 存储过程
    • 存储函数
    • 变量
    • 流程控制
    • 游标
    • 预处理语句
  • 第8章 事务与锁

    • 事务
    • 事务隔离级别
    • 锁机制
    • MVCC
    • 死锁专题分析
    • LOCK TABLES
    • XA 事务
  • 第9章 用户管理与安全

    • 用户管理
    • 权限管理
    • 角色
    • SQL 注入防范
  • 第10章 性能优化入门

    • 执行计划
    • 索引优化
    • 查询优化
    • 查询优化器提示
    • 慢查询日志
    • InnoDB 深入机制
    • InnoDB 专项优化
    • Performance Schema
    • sys Schema
  • 第11章 复制与高可用

    • 主从复制原理
    • 半同步复制配置
    • binlog 开启与 point-in-time 恢复
    • mysqldump 全库备份
    • mysqldump 单表与条件备份
    • mysqldump 恢复与导入
    • xtrabackup 全量热备
    • xtrabackup 准备与恢复
    • xtrabackup 增量与流式备份
  • 第12章 触发器与事件

    • 触发器
    • 事件调度器
  • 参考

    • MySQL 5.7 专业术语大全
    • MySQL 5.7 关键字与保留字大全

MySQL 5.7 专业术语大全

学习哲学:以"数据存储 → 数据操作 → 数据优化 → 数据应用"为骨架,以官方文档为锚点,以实际场景为验收标准。

一、数据库基础概念

1.1 核心架构术语

术语英文通俗解释
数据库(Database)Database有组织的数据集合,像一个大仓库,里面分了很多货架(表)
数据库管理系统(DBMS)Database Management System管理数据库的软件,MySQL 就是一种 DBMS
关系型数据库(RDBMS)Relational DBMS用"表"来组织数据,表与表之间可以建立关系,像 Excel 的多张工作表
表(Table)Table数据的结构化容器,由行和列组成,类似 Excel 表格
行(Row)Row / Record表中的一条数据,描述一个完整实体,如"一只宠物的全部信息"
列(Column)Column / Field表中的一个属性,如"名字""出生日期",所有行都有相同的列
字段(Field)Field同"列",强调单个数据项
记录(Record)Record同"行",强调一条完整的数据
元组(Tuple)Tuple关系代数中的术语,等同于"行"
关系(Relation)Relation关系代数中的术语,等同于"表"

1.2 键与约束术语

术语英文通俗解释
主键(Primary Key)Primary Key (PK)表中唯一标识每一行的"身份证号",不允许重复,不能为 NULL
外键(Foreign Key)Foreign Key (FK)建立表与表之间关系的桥梁,指向另一张表的主键
候选键(Candidate Key)Candidate Key可以当主键的列(或列组合),满足唯一性和非空性
超键(Super Key)Super Key能唯一标识一行的列集合(可能包含多余列)
复合键(Composite Key)Composite Key由多个列组合而成的主键
代理键(Surrogate Key)Surrogate Key人为生成的唯一标识,如自增 ID,与业务无关
自然键(Natural Key)Natural Key业务本身具有唯一性的属性,如身份证号
唯一约束(Unique)Unique Constraint保证列值不重复,但允许 NULL
非空约束(NOT NULL)NOT NULL Constraint该列必须有值,不能为空
默认值(Default)Default Value未指定值时自动填充的值
检查约束(CHECK)CHECK Constraint限制列值必须满足的条件(MySQL 5.7 支持语法但实际不生效)
参照完整性(Referential Integrity)Referential Integrity外键指向的数据必须真实存在,防止" dangling pointer "

二、数据类型术语

2.1 数值类型

术语说明
TINYINT1 字节整数,范围 -128~127(有符号)或 0~255(无符号)
SMALLINT2 字节整数
INT / INTEGER4 字节整数,最常用,范围约 ±21 亿
BIGINT8 字节整数,用于大数据量 ID
FLOAT单精度浮点数,4 字节,近似存储
DOUBLE双精度浮点数,8 字节,近似存储
DECIMAL(M,D)精确小数,M 总位数,D 小数位,金额计算必须用此类型
UNSIGNED无符号修饰符,只存正数,扩大正数范围
AUTO_INCREMENT自增属性,插入时自动 +1,通常用于主键
ZEROFILL零填充,如 INT(5) ZEROFILL 显示 00123

2.2 字符串类型

术语说明
CHAR(M)定长字符串,M 字符,不足补空格,读取快
VARCHAR(M)变长字符串,M 字符,节省空间,最常用
TEXT长文本,最大 65535 字节
BLOB二进制大对象,存储图片/文件等二进制数据
ENUM枚举,只能从预定义列表中选一个值
SET集合,可从预定义列表中选多个值(位图存储)

2.3 日期时间类型

术语说明
DATE日期,格式 YYYY-MM-DD
TIME时间,格式 HH:MM:SS
DATETIME日期+时间,格式 YYYY-MM-DD HH:MM:SS,范围大
TIMESTAMP时间戳,范围 1970-2038,自动时区转换,支持自动更新
YEAR年份,格式 YYYY

DATETIME vs TIMESTAMP:DATETIME 存你输入什么就是什么,与时区无关;TIMESTAMP 存 UTC 时间,读取时按当前时区转换。

三、SQL 操作术语

3.1 数据定义语言(DDL)

术语英文说明
CREATECreate创建数据库对象(数据库、表、索引等)
ALTERAlter修改已有数据库对象的结构
DROPDrop删除数据库对象(⚠️ 危险操作,不可恢复)
TRUNCATETruncate清空表数据,比 DELETE 快,但不记录单行删除日志
RENAMERename重命名表

3.2 数据操作语言(DML)

术语英文说明
SELECTSelect查询数据,最常用的 SQL 语句
INSERTInsert向表中插入新数据
UPDATEUpdate修改已有数据
DELETEDelete删除数据(可条件删除)
MERGE / REPLACEMerge / Replace插入或替换(MySQL 中 REPLACE = DELETE + INSERT)
CRUDCreate, Read, Update, Delete增删改查的统称,数据库四大基本操作

3.3 数据控制语言(DCL)

术语英文说明
GRANTGrant授予用户权限
REVOKERevoke收回用户权限
权限(Privilege)Privilege用户能执行的操作,如 SELECT、INSERT、ALL PRIVILEGES

3.4 事务控制语言(TCL)

术语英文说明
事务(Transaction)Transaction一组原子性的 SQL 操作,要么全成功,要么全失败
COMMITCommit提交事务,永久保存更改
ROLLBACKRollback回滚事务,撤销未提交的更改
SAVEPOINTSavepoint事务中的保存点,可回滚到指定点
ACIDAtomicity, Consistency, Isolation, Durability事务的四大特性:原子性、一致性、隔离性、持久性

四、查询相关术语

4.1 连接查询

术语英文说明
JOINJoin连接多张表进行查询
INNER JOINInner Join内连接,只返回匹配条件的行(交集)
LEFT JOINLeft Outer Join左外连接,返回左表所有行,右表不匹配填 NULL
RIGHT JOINRight Outer Join右外连接,返回右表所有行,左表不匹配填 NULL
FULL JOINFull Outer Join全外连接,返回两边所有行(MySQL 不支持,需用 UNION 模拟)
CROSS JOINCross Join交叉连接,笛卡尔积,所有行互相组合
SELF JOINSelf Join自连接,同一张表与自己连接
ON 子句ON Clause指定连接条件
USING 子句USING Clause当两表同名列作为连接条件时的简写
笛卡尔积(Cartesian Product)Cartesian Product无连接条件时,两表行数相乘的结果

4.2 子查询与派生表

术语英文说明
子查询(Subquery)Subquery嵌套在另一条 SQL 中的查询
派生表(Derived Table)Derived Table子查询出现在 FROM 子句中,充当临时表
相关子查询(Correlated Subquery)Correlated Subquery子查询依赖外层查询的值
标量子查询(Scalar Subquery)Scalar Subquery返回单个值的子查询
EXISTSExists判断子查询是否有返回行
INIn判断值是否在子查询结果集中
ALL / ANY / SOMEAll / Any / Some与子查询结果集做全部/任意比较

4.3 聚合与分组

术语英文说明
聚合函数(Aggregate Function)Aggregate Function对多行数据进行汇总计算
COUNT()Count计数
SUM()Sum求和
AVG()Average平均值
MAX()Maximum最大值
MIN()Minimum最小值
GROUP BYGroup By按指定列分组,聚合函数对每组分别计算
HAVINGHaving对分组后的结果进行过滤(类似 WHERE,但用于聚合结果)
DISTINCTDistinct去重,只返回唯一值
窗口函数(Window Function)Window FunctionMySQL 8.0 引入,5.7 不支持,了解即可

五、索引与性能术语

术语英文说明
索引(Index)Index加速数据查询的数据结构,类似书的目录
主键索引(Primary Index)Primary Index主键自动创建的索引
唯一索引(Unique Index)Unique Index保证列值唯一的索引
普通索引(Normal Index)Normal Index最基本的索引,仅加速查询
全文索引(Fulltext Index)Fulltext Index用于文本搜索的专用索引
B-Tree 索引B-Tree IndexMySQL 默认索引类型,平衡多路查找树
哈希索引(Hash Index)Hash Index基于哈希表的索引,精确匹配快,不支持范围查询
覆盖索引(Covering Index)Covering Index查询所需列全在索引中,无需回表查数据
最左前缀原则Leftmost Prefix Rule复合索引必须从最左列开始用才能生效
EXPLAINExplain分析 SQL 执行计划的命令,优化必备
执行计划(Execution Plan)Execution Plan数据库执行 SQL 的具体步骤和策略
查询优化器(Query Optimizer)Query Optimizer自动选择最优执行计划的组件
回表(Lookup)Lookup / Bookmark Lookup通过索引找到主键,再查主键索引获取完整数据

六、存储引擎与底层术语

术语英文说明
存储引擎(Storage Engine)Storage Engine负责数据存储和读取的底层模块,可插拔架构
InnoDBInnoDBMySQL 5.5+ 默认引擎,支持事务、行级锁、外键
MyISAMMyISAM旧版默认引擎,表级锁,不支持事务,已逐渐淘汰
MEMORYMemory数据存内存,速度快但重启丢失
事务(Transaction)Transaction一组原子操作,ACID 特性
行级锁(Row-Level Locking)Row-Level Lock只锁定被操作的行,并发性能好
表级锁(Table-Level Locking)Table-Level Lock锁定整张表,并发性能差
MVCCMulti-Version Concurrency Control多版本并发控制,实现非阻塞读
Redo LogRedo Log重做日志,崩溃恢复用,保证持久性
Undo LogUndo Log回滚日志,用于事务回滚和 MVCC
BinlogBinary Log二进制日志,记录所有数据变更,用于复制和恢复
Slow Query LogSlow Query Log慢查询日志,记录执行时间超过阈值的 SQL
Doublewrite BufferDoublewrite Buffer双写缓冲区,防止页写损坏
Buffer PoolBuffer PoolInnoDB 缓存池,缓存数据和索引页

七、高可用与架构术语

术语英文说明
主从复制(Replication)Replication主库数据自动同步到从库
主库(Master)Master写操作的主服务器
从库(Slave)Slave接收主库同步数据的只读服务器
二进制日志(Binlog)Binary Log记录数据变更,复制的基础
GTIDGlobal Transaction Identifier全局事务标识,简化复制管理
读写分离Read/Write Splitting写走主库,读走从库,分摊压力
分库分表Sharding数据水平拆分,分散到多个库/表
垂直拆分Vertical Partitioning按列拆分,不同表存不同字段
水平拆分Horizontal Partitioning按行拆分,不同表存不同范围的数据
连接池(Connection Pool)Connection Pool预先创建连接并复用,提升并发性能
ORMObject-Relational Mapping对象关系映射,将表映射为编程语言对象
SQL 注入(SQL Injection)SQL Injection通过恶意输入篡改 SQL 的安全漏洞
参数化查询Parameterized Query使用占位符传递参数,防止 SQL 注入

八、实用速查:术语分类索引

按首字母索引

A-EF-JK-OP-TU-Z
ACIDFieldKeyPrimary KeyUnique
ALTERForeign KeyLeft JoinQueryUpdate
Auto IncrementFull JoinLockRecordVARCHAR
B-TreeGROUP BYMasterReplicationWHERE
Buffer PoolHAVINGMVCCRight JoinWindow Function
CHARIndexNormal IndexRowZeroFill
ColumnInner JoinNOT NULLSELECT
CommitINSERTONSelf Join
COUNTInnoDBORMSET
Cross JoinJOINPartitionSharding
DatabaseLeft JoinPrimary KeySubquery
DECIMALLikePrivilegeTable
DELETELimitQuery OptimizerTIMESTAMP
DISTINCTLookupRedo LogTransaction
DROPRollbackTrigger
ENUMRowTruncate
EXPLAINSchemaUNION
SELECTUndo Log

九、课后巩固

  1. 主键和唯一索引的区别是什么?一个表可以有几个主键?几个唯一索引?
  2. CHAR 和 VARCHAR 的区别?什么场景用 CHAR 更好?
  3. 事务的 ACID 分别代表什么?MySQL 哪个存储引擎支持事务?
  4. INNER JOIN 和 LEFT JOIN 的结果集有什么区别?
  5. 什么是笛卡尔积?如何避免产生笛卡尔积?
  6. 索引是什么?为什么加了索引查询会变快?
  7. 什么是 SQL 注入?如何防范?
  8. 主从复制的作用是什么?读写分离解决了什么问题?
下一页
MySQL 5.7 关键字与保留字大全