Skip to content

第七章 MySQL 详解 ​


1. MySQL 概述与架构 ​

MySQL 是目前世界上使用最广泛的开源关系型数据库管理系统之一,由瑞典 MySQL AB 公司开发,现归属于 Oracle 公司。MySQL 以其高性能、高可靠性和易用性著称,被广泛应用于 Web 应用、企业信息系统和大规模互联网服务中。学习 MySQL 是掌握关系型数据库实践的重要环节。

1.1 MySQL 的诞生与发展 ​

MySQL 的名称来源于创始人 Michael Widenius 的女儿 "My"。1995 年,MySQL 1.0 首次发布。2000 年,MySQL 采用 GPL 协议开源,迅速在开源社区中获得广泛 adoption。2008 年 Sun 公司收购 MySQL AB,2009 年 Oracle 收购 Sun,MySQL 遂成为 Oracle 旗下产品。为避免商业收购带来的不确定性,MySQL 的原始开发者基于 MySQL 5.5 创建了 MariaDB 分支,二者在语法和接口上保持高度兼容。

1.2 MySQL 的核心特性 ​

  • 开源免费:社区版遵循 GPL 协议,可免费用于商业和非商业场景。
  • 跨平台:支持 Windows、Linux、macOS 等多种操作系统。
  • 存储引擎架构:采用可插拔存储引擎设计,InnoDB、MyISAM 等引擎各有适用场景。
  • 标准化:支持 SQL 标准,与第三章所学的 SQL 语言高度兼容。
  • 主从复制与集群:支持主从复制、组复制等高可用架构。

1.3 MySQL 体系结构 ​

MySQL 采用经典的客户端/服务器架构。服务器端主要包括以下层次:

  1. 连接层:负责客户端连接管理、身份认证、权限校验。
  2. SQL 层:负责 SQL 解析、查询优化、执行计划生成、缓存管理。
  3. 存储引擎层:负责数据的物理存储和检索。InnoDB 是 MySQL 5.5 之后的默认引擎,支持事务、行级锁和外键。

理解 MySQL 时,有一个特别重要的视角:它不是一套从上到下完全单一的实现,而是把通用 SQL 能力与可插拔存储引擎结合起来的平台。对用户来说,写的仍然是统一的 SQL;但对系统内部来说,事务、索引组织、锁粒度和崩溃恢复等关键行为,很大程度上由底层引擎决定。也正因为如此,学习 MySQL 不能只记住语法,还要知道某种行为究竟是 SQL 标准带来的,还是 InnoDB 这类引擎实现带来的。把这一层边界看清楚,后续学习索引、事务和恢复时会轻松很多。


2. MySQL 安装与配置 ​

2.1 安装方式概述 ​

MySQL 的安装方式因操作系统而异:

  • Linux:可通过包管理器(如 apt、yum)安装,或从官网下载二进制包解压使用。
  • Windows:推荐使用官方 MSI 安装包,提供图形化安装向导。
  • macOS:可使用 Homebrew (brew install mysql) 或官方 DMG 安装包。

安装完成后,需要启动 MySQL 服务并设置 root 用户的初始密码。

安装环节看似偏操作,实际是在为后续全部实践建立基础环境。教学中容易忽视的一点是,数据库软件不是装完就能放心使用,还必须在安装阶段就确定字符集、时区、端口、数据目录、日志目录和认证方式等关键默认项。尤其在中文环境和多系统协作环境中,若初始字符集和排序规则没有统一,后续会在导入导出、接口交换和模糊查询中反复出现问题。数据库的很多长期稳定性,往往从安装配置阶段就已经埋下伏笔。

2.2 连接 MySQL ​

使用命令行客户端连接:

bash
mysql -h 主机地址 -u 用户名 -p
  • −h:指定服务器主机,省略时默认 localhost。
  • −u:指定登录用户名。
  • −p:提示输入密码,也可直接写 -p密码(不推荐,密码可能被记录)。

连接成功后,将进入 MySQL 命令行提示符 mysql>。

2.3 基础管理命令 ​

sql
-- 查看所有数据库
SHOW DATABASES;

-- 查看当前 MySQL 版本
SELECT VERSION();

-- 查看当前用户
SELECT USER();

-- 退出
EXIT;

3. 数据库操作 ​

3.1 创建数据库 ​

3.2 选择数据库 ​

3.3 删除数据库 ​

4. 数据类型与表操作 ​

4.1 常用数据类型 ​

4.2 创建表 ​

4.3 修改表结构 (ALTER TABLE) ​

4.4 删除表 ​

5. 数据操纵 (DML) ​

5.1 插入数据 (INSERT) ​

5.2 更新数据 (UPDATE) ​

5.3 删除数据 (DELETE) ​

5.4 查询数据 (SELECT) 基础 ​

6. 查询进阶 ​

6.1 WHERE 子句与运算符 ​

6.2 ORDER BY 排序 ​

6.3 LIMIT 分页 ​

6.4 聚合函数与 GROUP BY ​

6.5 连接查询 (JOIN) ​

6.6 子查询 ​

6.7 UNION 合并结果集 ​

7. 约束与索引 ​

7.1 约束类型 ​

7.2 索引的创建与使用 ​

8. 视图、存储过程与触发器 ​

8.1 视图 ​

8.2 存储过程 ​

8.3 触发器 ​

9. 事务与锁 ​

9.1 事务控制 ​

9.2 隔离级别 ​

9.3 锁机制 ​

10. 备份、导入导出与安全 ​

10.1 逻辑备份 ​

10.2 用户与权限 ​

10.3 安全建议 ​