本系列可作为数据库学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。
点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!
系列文章目录
数据库---Day 1 数据库基础
目录
目录
[1.1 数据库的定义](#1.1 数据库的定义)
[1.2 为什么必须使用数据库?](#1.2 为什么必须使用数据库?)
[1.3 主流数据库分类:关系型与非关系型](#1.3 主流数据库分类:关系型与非关系型)
[1.3.1 关系型数据库](#1.3.1 关系型数据库)
[1.3.2 非关系型数据库](#1.3.2 非关系型数据库)
[1.4 关系型数据库的核心:关系模型](#1.4 关系型数据库的核心:关系模型)
[二、MySQL 安装与配置:Windows/Linux 基础操作](#二、MySQL 安装与配置:Windows/Linux 基础操作)
[2.1 MySQL 核心程序:mysqld 服务端](#2.1 MySQL 核心程序:mysqld 服务端)
[2.2 数据库服务器、数据库、表的层级关系](#2.2 数据库服务器、数据库、表的层级关系)
[2.3 MySQL 配置文件修改:自定义基础参数](#2.3 MySQL 配置文件修改:自定义基础参数)
[三、MySQL 客户端工具:命令行与可视化双选择](#三、MySQL 客户端工具:命令行与可视化双选择)
[3.1 自带命令行工具:mysql](#3.1 自带命令行工具:mysql)
[3.2 官方可视化工具:MySQL Workbench](#3.2 官方可视化工具:MySQL Workbench)
[3.3 业内主流可视化工具:Navicat Lite](#3.3 业内主流可视化工具:Navicat Lite)
[四、客户端与服务器的通讯架构:C/S 与 B/S](#四、客户端与服务器的通讯架构:C/S 与 B/S)
[4.1 C/S 架构:客户端 / 服务器架构](#4.1 C/S 架构:客户端 / 服务器架构)
[4.2 B/S 架构:浏览器 / 服务器架构](#4.2 B/S 架构:浏览器 / 服务器架构)
[4.3 核心区别](#4.3 核心区别)
[五、SQL 入门:结构化查询语言的核心分类](#五、SQL 入门:结构化查询语言的核心分类)
[5.1 SQL 的定义](#5.1 SQL 的定义)
[5.2 SQL 的三大核心分类](#5.2 SQL 的三大核心分类)
[5.2.1 DDL:数据定义语言](#5.2.1 DDL:数据定义语言)
[5.2.2 DML:数据操纵语言](#5.2.2 DML:数据操纵语言)
[5.2.3 DCL:数据控制语言](#5.2.3 DCL:数据控制语言)
[六、MySQL 架构解析:分层设计,灵活可扩展](#六、MySQL 架构解析:分层设计,灵活可扩展)
[6.1 连接层](#6.1 连接层)
[6.2 服务层](#6.2 服务层)
[6.3 存储引擎层](#6.3 存储引擎层)
[6.4 文件系统层](#6.4 文件系统层)
[6.5 外部连接器](#6.5 外部连接器)
[七、MySQL 存储引擎:核心数据处理组件,按需选择](#七、MySQL 存储引擎:核心数据处理组件,按需选择)
[7.1 存储引擎的核心特性](#7.1 存储引擎的核心特性)
[7.2 查看 MySQL 支持的存储引擎](#7.2 查看 MySQL 支持的存储引擎)
[7.3 主流存储引擎对比:InnoDB、MyISAM、MEMORY](#7.3 主流存储引擎对比:InnoDB、MyISAM、MEMORY)
[7.4 主流存储引擎适用场景](#7.4 主流存储引擎适用场景)
前言
小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!
在计算机科学与技术领域,数据库技术是处理非数值计算数据的核心,自 20 世纪 60 年代末发展以来,已成为各类应用开发、数据管理的基础支撑。无论是中小型电商系统,还是大型企业级项目,都离不开数据库的加持。本文将从数据库基础概念出发,深入讲解关系型数据库核心知识、MySQL 的安装配置、客户端工具使用,同时解析 SQL 分类、MySQL 架构及存储引擎,为零基础学习者搭建完整的数据库入门知识体系。
一、数据库核心认知:是什么?为什么用?
1.1 数据库的定义
数据库技术专门解决数据处理的非数值计算问题,核心围绕数据的存储、查询、修改、排序和统计展开,是一套系统化的数据管理解决方案,而数据库则是按照特定结构组织、存储和管理数据的集合。
1.2 为什么必须使用数据库?
相比单纯使用文件存储数据,数据库具备不可替代的优势,也是企业级应用选择数据库的核心原因:
- 数据持久化:数据保存在专用存储介质中,应用关闭、服务器重启后数据不丢失,实现长期存储。
- 数据结构化:以规范的结构组织数据,摆脱文件存储的杂乱性,让数据管理和查询更高效。
- 数据完整性:数据库管理系统(DBMS)提供约束机制,确保数据的准确性和一致性,避免脏数据、重复数据。
- 并发控制:支持多用户 / 进程同时访问和修改数据,同时保证数据一致性,解决文件存储的并发冲突问题。
- 安全性:提供访问控制、数据加密等多种安全机制,防止数据被未授权访问、篡改。
- 可扩展性:支持水平(增加服务器节点)或垂直(提升单服务器配置)扩展,适配数据量和访问量的增长。
- 备份和恢复:内置完善的备份恢复机制,可应对数据丢失、损坏等突发情况,降低数据风险。
- 查询优化:自带高效的查询优化器,能快速执行复杂的多表关联、条件筛选等查询操作。
- 事务管理:主流关系型数据库均支持事务,遵循 ACID 原则,确保一系列操作 "要么全成,要么全败",提升操作可靠性。
- 多用户支持:天然适配多用户协作场景,满足企业团队、互联网产品的多端数据操作需求。
1.3 主流数据库分类:关系型与非关系型
当前数据库市场主要分为关系型数据库(RDBMS) 和非关系型数据库(NoSQL) 两大类,二者适用于不同的业务场景,各有优势。
1.3.1 关系型数据库
采用关系模型组织数据,以二维表格(行和列)的形式存储,表之间可通过关联字段建立关系,是目前应用最广泛的数据库类型,主流产品包括:
- Oracle:甲骨文旗下产品,业内功能最强的数据库,适配大型企业级项目,需付费使用。
- MySQL:开源免费,最受欢迎的关系型数据库,中小企业普及率极高,现归属甲骨文,广泛用于电商、论坛、小型 Web 项目等。
- PostgreSQL:由加州大学伯克利分校开发,开源免费,支持自定义修改和分发,功能强大且兼容性好。
- SQL Server:微软推出的专业级数据库,与 Windows 系统、.NET 编程环境深度兼容,适用于中大型项目。
- SQLite:轻型数据库,占用资源极低,无需独立服务端,常用于嵌入式设备、手机 APP、桌面程序等轻量场景。
1.3.2 非关系型数据库
又称 NoSQL,摒弃关系模型的严格约束,采用键值对、文档、图形等多种存储结构,具备高可扩展、高性能的特点,适配大数据、高并发的互联网场景,主流产品包括:
- Redis:基于键值对的内存数据库,支持数据持久化,提供字符串、哈希、列表等多种数据结构,常用作缓存、分布式锁。
- MongoDB:文档型 NoSQL 数据库,以 JSON 格式存储数据,易扩展、高性能,支持丰富的查询和聚合操作,适用于非结构化数据存储。
1.4 关系型数据库的核心:关系模型
关系型数据库的核心是关系模型 ,可简单理解为二维表格模型,一个关系型数据库由多个二维表及表之间的关联关系组成。
- 表格中的每一行称为一条记录,代表一个实体的完整信息;
- 每一列称为一个字段,代表实体的一个属性;
- 表之间可通过关联字段(如外键)建立关系,实现数据的关联查询。
示例:学生表和班级表通过「班级编号」建立关联,可快速查询某个学生所属的班级信息。
| 学生表 - 编号 | 姓名 | 性别 | 班级编号 |
|---|---|---|---|
| 1 | 张三 | 男 | 1 |
| 2 | 李四 | 女 | 1 |
| 3 | 王五 | 男 | 2 |
| 班级表 - 编号 | 班级 |
|---|---|
| 1 | java113 |
| 2 | java78 |
| 3 | java23 |
二、MySQL 安装与配置:Windows/Linux 基础操作
MySQL 作为开源免费的主流关系型数据库,是入门学习的首选,其安装配置分为Windows 和Linux两大系统,核心是完成服务端程序部署和基础配置修改。
2.1 MySQL 核心程序:mysqld 服务端
MySQL 安装完成后,在安装目录的bin文件夹下会存在核心可执行程序:
- Linux 系统:
mysqld - Windows 系统:
mysqld.exe该程序运行后,MySQL 服务即启动;若将 MySQL 配置为自启动 ,操作系统开机时会自动运行mysqld,无需手动启动服务。
2.2 数据库服务器、数据库、表的层级关系
MySQL 的核心数据管理采用三层层级结构,理解这一关系是后续操作的基础:
- 数据库服务器 :安装了 MySQL 数据库管理系统的机器 / 程序,一个服务器可管理多个数据库;
- 数据库:为单个应用 / 业务模块创建的独立数据空间,开发中通常一个应用对应一个数据库;
- 表 :数据库中存储具体实体数据的二维表格,一个数据库可包含多个表,表是数据存储的最小单位。
简单总结:服务器管理多个数据库,数据库包含多个表,表存储具体数据。
2.3 MySQL 配置文件修改:自定义基础参数
MySQL 安装后有默认配置(如端口 3306、字符集 utf8mb4),若需修改端口、数据目录、存储引擎等,可通过选项配置文件实现,核心注意点如下:
- Windows 系统默认路径 :
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini(需用支持 UTF8 的编辑器打开); - Linux 系统配置文件 :进阶内容,通常为
/etc/my.cnf或/usr/my.cnf; - 核心配置节点 :
[client]:所有 MySQL 客户端的统一配置,如默认字符集、端口;[mysql]:仅针对 MySQL 自带命令行客户端的配置;[mysqld]:MySQL 服务端核心配置,是修改的主要节点,包含端口、数据目录、默认存储引擎、日志路径等;
- 关键配置项 (
[mysqld]节点):port=3306:MySQL 服务端口,可修改为未被占用的端口(如 3307);datadir:数据存储目录,修改后需将原数据目录整体复制到新路径;character-set-server=utf8mb4:服务端默认字符集,推荐使用 utf8mb4(兼容 emoji);default-storage-engine=INNODB:默认存储引擎,MySQL8.0 默认为 InnoDB;- 日志配置:通用日志、慢查询日志、错误日志的开启状态和存储路径;
- 修改后操作 :配置文件修改完成后,必须重启 MySQL 服务才能生效。
三、MySQL 客户端工具:命令行与可视化双选择
MySQL 服务启动后,需通过客户端工具 连接服务器并执行 SQL 操作,主流工具分为命令行工具 和可视化工具,分别适用于快速操作和开发调试场景。
3.1 自带命令行工具:mysql
MySQL 安装后自带的原生命令行工具,无需额外安装,操作简洁,适合快速执行简单 SQL 或服务器端操作,核心使用步骤:
-
检查系统PATH 环境变量 是否配置了 MySQL 的
bin目录(未配置则需手动添加,否则无法全局调用); -
打开终端 / 命令提示符,输入连接命令:
bashmysql -uroot -p其中
-u后接用户名(默认 root),-p表示需要输入密码; -
输入 MySQL 安装时设置的密码,验证通过后进入 MySQL 交互界面;
-
执行 SQL 语句,语句需以分号; 结尾,示例:
sql-- 查询MySQL版本 select version(); -
交互界面中可输入
help;或\h查看帮助,\c清空当前输入的未完成语句。
3.2 官方可视化工具:MySQL Workbench
MySQL 官方提供的免费可视化客户端工具,功能全面,支持数据库设计、SQL 编辑、数据查询、表结构管理等,核心特点:
- 安装后自动识别本地 MySQL 实例,直接点击 "Local instance MySQL8.0" 即可连接;
- 界面分为SQL 编辑区 (编写 / 运行 SQL)、数据库列表区 (展示所有数据库和表)、结果显示区 (展示 SQL 执行结果)、信息提示区(显示执行时间、状态);
- 支持可视化设计表结构、创建索引、建立表关联,适合开发阶段的数据库设计和调试。
3.3 业内主流可视化工具:Navicat Lite
业内使用最广泛的 MySQL 可视化工具,推出了免费的 Lite 版本,功能满足学习和中小型开发需求,操作更贴合开发者习惯,核心使用步骤:
- 新建连接:选择 MySQL 连接类型,配置连接信息(连接名称、主机localhost、端口 3306、用户名 root、密码);
- 测试连接:配置完成后点击 "测试连接",提示 "连接成功" 即可保存;
- 新建查询:打开连接后,点击 "新建查询" 进入 SQL 编辑区,编写并运行 SQL;
- 核心功能:支持表结构可视化修改、数据批量编辑、SQL 美化、备份恢复等,操作简洁高效。
四、客户端与服务器的通讯架构:C/S 与 B/S
MySQL 客户端与服务器的通讯遵循C/S 架构 ,这是数据库交互的核心架构,同时需了解互联网主流的B/S 架构,明确二者的区别和适用场景。
4.1 C/S 架构:客户端 / 服务器架构
全称:Client/Server 架构,属于两层架构,是 MySQL 客户端与服务器通讯的核心模式。
- 架构组成:客户端(安装专用客户端软件)+ 服务器(运行 MySQL 服务端程序);
- 通讯方式:客户端通过 Socket 协议向服务器发送请求,服务器处理后返回响应;
- 适用场景:固定用户群体、对交互性和响应速度要求高的场景,如数据库客户端、QQ、网络游戏、办公软件;
- 优点 :
- 大部分业务逻辑在客户端完成,充分利用本地计算机资源;
- 响应速度快,个性化定制能力强;
- 面向固定用户,数据安全控制能力强;
- 缺点 :
- 客户端需安装专用软件,用户使用门槛高;
- 维护成本高,客户端版本更新、故障修复需逐台操作。
4.2 B/S 架构:浏览器 / 服务器架构
全称:Browser/Server 架构,是对 C/S 架构的改进,属于三层架构(浏览器 + 应用服务器 + 数据库服务器)。
- 架构组成:客户端(仅需浏览器)+ 应用服务器(处理业务逻辑)+ 数据库服务器(存储数据);
- 通讯方式:浏览器通过 HTTP 协议向应用服务器发送请求,应用服务器向数据库服务器发起数据操作请求,处理后逐层返回响应;
- 适用场景:公开用户群体、互联网产品,如电商网站、社交平台、各类 Web 应用;
- 优点 :
- 客户端零维护,仅需安装浏览器,用户使用门槛极低;
- 业务逻辑集中在服务器端,版本更新、功能扩展仅需维护服务器;
- 跨平台性好,支持不同操作系统、不同浏览器访问;
- 缺点 :
- 服务器承担所有业务逻辑和数据处理,对服务器性能、安全性要求高,运维成本大;
- 受浏览器兼容性限制,部分高级功能实现难度大;
- 响应速度受网络影响较大。
4.3 核心区别
MySQL 的本地客户端(如 Navicat、Workbench) 属于纯 C/S 架构;而通过网页管理数据库则属于 B/S 架构,应用服务器作为中间层连接浏览器和 MySQL 服务器。
五、SQL 入门:结构化查询语言的核心分类
操作关系型数据库的通用语言是SQL,无论使用哪种关系型数据库,都需掌握 SQL,其语法具有通用性,仅部分细节存在差异。
5.1 SQL 的定义
SQL(Structured Query Language)即结构化查询语言 ,是一种专门用于存取、查询、更新和管理关系型数据库的标准语言,具备简洁、通用、非过程化的特点,无需关注具体执行步骤,只需说明 "做什么"。
5.2 SQL 的三大核心分类
根据功能不同,SQL 可分为DDL、DML、DCL三大类,覆盖数据库结构管理、数据操作、权限管理全场景,是学习 SQL 的基础框架。
5.2.1 DDL:数据定义语言
核心作用 :维护和管理数据库的存储结构 ,即定义数据库、表、索引、视图等对象的结构,操作后会永久改变数据库结构。代表指令 :create(创建)、drop(删除)、alter(修改)示例:
sql
-- 创建数据库
create database test_db;
-- 创建表
create table student (id int, name varchar(20));
-- 修改表(添加字段)
alter table student add column age int;
-- 删除表
drop table student;
5.2.2 DML:数据操纵语言
核心作用 :对数据库中的具体数据 进行操作,是开发中使用最频繁的 SQL 类型。代表指令 :insert(插入)、delete(删除)、update(修改)、select(查询)示例:
sql
-- 插入数据
insert into student (id, name) values (1, '张三');
-- 修改数据
update student set name = '张小三' where id = 1;
-- 删除数据
delete from student where id = 1;
-- 查询数据
select * from student;
5.2.3 DCL:数据控制语言
核心作用 :负责数据库的权限管理 和事务管理 ,主要用于数据库管理员(DBA)进行系统管理。代表指令 :grant(授予权限)、revoke(回收权限)、commit(提交事务)、rollback(回滚事务)示例:
sql
-- 授予用户查询test_db数据库的权限
grant select on test_db.* to 'user1'@'localhost';
-- 回收用户的查询权限
revoke select on test_db.* from 'user1'@'localhost';
-- 提交事务
commit;
六、MySQL 架构解析:分层设计,灵活可扩展
MySQL8.0 采用分层架构 设计,从上层的客户端连接到底层的文件系统,各层职责明确,具备高可扩展性和灵活性,核心分为连接层、服务层、存储引擎层、文件系统层四层,同时提供多种编程语言的连接器。
6.1 连接层
核心作用 :处理客户端与服务器的连接,进行身份验证和连接管理,是 MySQL 与外部交互的入口。核心组件 :连接池(Connection Pool)、身份验证(Authentication)、线程复用(Thread Reuse)等;关键功能:实现连接的建立、断开,验证用户名密码,限制最大连接数,复用线程减少资源消耗。
6.2 服务层
核心作用 :处理 MySQL 的核心业务逻辑,是整个架构的 "大脑",所有 SQL 语句的解析、优化、执行都在此层完成。核心组件:
- SQL 接口:接收客户端的 SQL 语句,返回执行结果;
- 解析器(Parser):对 SQL 语句进行语法分析和词法分析,生成语法树;
- 优化器(Optimizer):根据语法树制定最优执行计划,提升查询效率;
- 缓存(Caches & Buffers):缓存常用的查询结果,减少重复计算;
- 其他组件:负责存储过程、视图、触发器、权限管理、事务管理等。
6.3 存储引擎层
核心作用 :负责数据的实际存储和读取 ,是 MySQL 的核心特色层,采用可插拔架构 ,支持动态加载和卸载不同的存储引擎,适配不同的业务场景。核心特点 :MySQL 服务器本身不负责数据存储,仅通过接口调用存储引擎的功能,不同存储引擎的实现方式不同,提供的功能也有差异(如是否支持事务、索引类型);默认存储引擎:InnoDB(MySQL8.0 默认,支持事务、行级锁、外键)。
6.4 文件系统层
核心作用 :将 MySQL 的数据、日志等信息持久化到磁盘 ,是 MySQL 的底层存储支撑。存储内容 :数据文件、索引文件、重做日志(Redo)、回滚日志(Undo)、二进制日志(Binary)、错误日志、慢查询日志等;关联组件:服务器程序、配置文件、工具包等系统文件。
6.5 外部连接器
MySQL 为各类编程语言提供了专用连接器,支持外部应用程序连接 MySQL 服务器,如.NET、ODBC、JDBC、Python、Java、PHP、C++ 等,让开发者可在任意开发语言中操作 MySQL。
七、MySQL 存储引擎:核心数据处理组件,按需选择
存储引擎是 MySQL 处理数据的核心组件,不同存储引擎对应不同的数据存储、索引、查询实现方式,选择合适的存储引擎直接影响数据库的性能和功能,MySQL8.0 支持多种存储引擎,且可按需切换。
7.1 存储引擎的核心特性
- 可插拔架构:服务器运行时可动态加载 / 卸载,无需重启 MySQL 服务;
- 功能差异化:不同存储引擎对事务、锁机制、索引、外键等功能的支持不同;
- 场景化适配:根据业务场景(如是否需要事务、是否追求查询速度、是否存储临时数据)选择对应的存储引擎。
7.2 查看 MySQL 支持的存储引擎
通过 SQL 语句SHOW ENGINES;可查看当前 MySQL 服务器支持的所有存储引擎,结果中Support列表示是否支持,DEFAULT表示默认存储引擎。
sql
-- 查看所有存储引擎
show engines;
MySQL8.0 主流支持的存储引擎包括:InnoDB、MyISAM、MEMORY、CSV、ARCHIVE、BLACKHOLE 等,其中InnoDB 为默认存储引擎。
7.3 主流存储引擎对比:InnoDB、MyISAM、MEMORY
三者是 MySQL 最常用的存储引擎,功能差异显著,适用于不同场景,核心对比如下表(关键特性):
| 特性 | MyISAM | MEMORY | InnoDB |
|---|---|---|---|
| 事务支持 | 不支持 | 不支持 | 支持 |
| 行级锁 / 表级锁 | 表级锁 | 表级锁 | 行级锁 |
| 外键支持 | 不支持 | 不支持 | 支持 |
| 索引类型 | B-tree | B-tree/Hash | B-tree |
| 数据缓存 | 不支持 | 内存存储 | 支持 |
| 集群索引 | 不支持 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 | 支持 |
| 地理空间索引 | 支持 | 不支持 | 支持 |
| 存储介质 | 磁盘 | 内存 | 磁盘 |
| 最大存储限制 | 256TB | 内存大小 | 64TB |
| MVCC(多版本并发控制) | 不支持 | 不支持 | 支持 |
7.4 主流存储引擎适用场景
- InnoDB :MySQL8.0 默认存储引擎,全能型存储引擎,支持事务、行级锁、外键、MVCC,适合对数据一致性、安全性要求高的场景,如电商系统、金融系统、企业级应用,是绝大多数业务的首选。
- MyISAM :经典存储引擎,不支持事务和行级锁,但查询速度快,适合只读 / 读多写少的场景,如博客、静态网站、数据统计报表(MySQL8.0 中已逐步被 InnoDB 替代)。
- MEMORY :内存存储引擎,数据全部存于内存,读写速度极快,重启后数据丢失,适合临时数据存储、高速查询的场景,如临时表、缓存中间结果。
- CSV:以 CSV 格式存储数据,适合数据导入导出,方便与其他系统交互。
- ARCHIVE:归档存储引擎,压缩比高,适合存储大量历史归档数据,仅支持插入和查询,不支持修改删除。
八、总结
数据库技术是计算机开发的基础技能,而 MySQL 作为开源免费的主流关系型数据库,是入门的最佳选择。本文从数据库基础概念出发,讲解了关系型与非关系型数据库的区别、MySQL 的安装配置、客户端工具使用,同时解析了 C/S/B/S 架构、SQL 三大分类、MySQL 分层架构及存储引擎核心知识,搭建了从概念到实操的完整入门体系。
核心重点回顾:
- 关系型数据库的核心是二维表格模型,表之间通过关联字段建立关系;
- MySQL 的三层层级关系:服务器→数据库→表,是数据管理的基础;
- SQL 分为DDL(定义结构)、DML(操作数据)、DCL(控制权限),是操作数据库的通用语言;
- MySQL 采用分层架构 ,存储引擎层为可插拔设计,InnoDB是默认且适用绝大多数场景的存储引擎;
- 客户端与 MySQL 服务器的通讯遵循C/S 架构,可视化工具(Navicat、Workbench)是开发的主流选择。
后续学习可从SQL 语法实操入手,逐步掌握表结构设计、数据增删改查、多表关联查询、索引优化等内容,结合实际项目加深对数据库知识的理解和应用。

总结
以上就是今天要讲的内容,本文简单记录了数据结构学习内容,仅作为一份简单的笔记使用,大家根据注释理解,您的点赞关注收藏就是对小编最大的鼓励!