MySQL基础核心|数据库原理+MySQL详解
MySQL基础核心数据库原理MySQL详解摘要本文聚焦MySQL入门核心内容系统梳理数据库基础原理与MySQL核心认知及实操基础两大模块。详细讲解数据三大分类、数据管理发展阶段、数据库核心概念、E-R模型与数据库设计范式同时完整介绍MySQL发展史、主流分支、核心特性、多实例部署原理、配套工具及常用客户端实操命令。内容精简干货、逻辑清晰适合零基础入门、期末复习、面试速记可直接用于学习与技术复盘。一、数据库核心原理1.1 数据的三大分类根据数据结构类型所有数据可分为结构化、半结构化、非结构化三类也是数据库选型的核心依据。1.1.1 结构化数据指可以通过二维表逻辑表达、有固定格式、固定长度的数据是关系型数据库的核心存储对象。核心特点以行为单位存储一行对应一个实体每行属性统一结构固定先定义结构再存入数据可通过统一数据类型、二维表结构规范管理范例二维表nonameage1唐三1232叶凡4561.1.2 半结构化数据介于结构化与非结构化之间数据与结构混合存储也称为自描述结构数据无需提前定义固定表结构。核心特点先有数据再有结构通过标记分隔语义元素、分层存储。常见场景HTML、JSON、XML、NoSQL数据库范例JSON[{id:1,name:唐三,age:123},{id:2,name:叶凡,age:456}]1.1.3 非结构化数据无固定格式、无固定长度无法通过二维表逻辑展示的数据仅支持整体存储。常见类型二进制文件、音视频、图片、位置信息、日志文件等。1.2 数据管理发展三大阶段数据管理技术随计算机迭代升级整体分为人工管理、文件系统、数据库系统三个阶段。1.2.1 人工管理阶段50年代中期前场景计算机仅用于科学计算硬件仅有磁带、打孔纸带无专业存储设备特点无专用数据管理软件人工手动管理数据仅支持批处理数据无法共享、冗余度极高1.2.2 文件系统阶段50年代后期-60年代中期场景计算机拓展至信息管理领域数据量激增硬件出现磁盘、磁鼓等联机存储设备优点数据可长期保存、文件格式多样化、具备基础数据独立性支持批处理实时联机处理缺点无统一访问接口、不支持并发访问、无安全校验、数据关联性弱、冗余无法避免1.2.3 数据库系统阶段60年代后期至今硬件大容量磁盘普及硬件成本大幅下降核心优势解决文件系统所有缺陷通过DBMS统一管理数据特点结构化数据模型、高数据独立性、低冗余、支持数据共享、具备完善的安全与备份机制1.3 数据库核心概念DB/DBMS/DBA1.3.1 三大核心名词数据库DatabaseDB长期存储在磁盘上、可共享的数据集合。数据可以采用固定结构化模型也可以是半结构化、非结构化形式由数据库系统统一管理如MySQL 里面建好的shop_db电商数据库。数据库管理系统Database Management SystemDBMS操纵、管理数据库的大型软件负责数据库的创建、使用、维护保障数据安全性、完整性是用户与数据库的中间层如MySQL。数据库管理员Database AdministratorDBA负责数据库全生命周期管理设计、测试、部署、运维核心目标是保障数据库稳定、安全、完整、高可用。应用程序Application对接DBMS实现业务功能的客户端软件完成数据交互如淘宝APP。1.3.2 DBMS核心特点数据按照一定的数据模型整体结构化组织数据冗余低、可扩展性强、支持多用户共享具备物理独立性逻辑独立性数据与程序解耦提供统一、标准化的查询操作接口内置并发控制、数据备份恢复、权限管控、完整性校验功能1.3.3 DBMS七大核心功能数据定义DDL定义数据库结构、模式、约束搭建数据库框架数据操作DML实现数据增、删、改、查核心操作数据组织存储管理优化存储结构提升存储空间利用率与查询效率数据库运行管理并发控制、安全校验、事务管理、日志监控保障系统稳定运行数据库维护数据导入导出、转储、重组、性能监控优化数据保护从恢复、并发、完整性、安全性四个维度保护数据通信交互支持与操作系统、网络程序、其他数据库的跨端通信1.3.4 数据库三代迭代发展层次数据库最早的数据库模型树状结构仅支持一对多关系灵活性差代表IBM IMS网状数据库网状结构支持一对一、一对多、多对多复杂关联结构复杂、维护难度高关系型数据库Relational Database Management SystemRDBMS当前主流以二维表为核心模型结构简单、易维护、通用性强代表MySQL、Oracle、SQL Server、PostgreSQL1.3.5 2025年主流数据库排名DB-Engines全球424款数据库综合评分排名关系型数据库依旧占据主流地位Oracle关系型多模型MySQL关系型多模型互联网首选Microsoft SQL ServerPostgreSQLMongoDB文档型非关系库1.4 关系型数据库核心理论1.4.1关系型数据库相关概念名词一句话核心比喻数据库多张有关联数据表的集合整个工作簿数据表行列组成的矩阵类似 Excel 工作表单个工作表列column竖列同一类型属性表头姓名、手机号行Row横向一整条完整数据一行用户信息冗余重复存储数据安全上升、性能下降多存一份备份主键Primary key唯一标识一行一张表只能一个主键身份证号外键Foreign key用来关联两张表引用另一表主键订单里的用户编号复合键多个字段组合作为主键 / 索引学号 课程号联合唯一索引类似书本目录加速查询书的目录参照完整性外键不能引用不存在的数据不能下单给一个不存在的用户表头(header): 每一列的名称;列(col): 具有相同数据类型的数据的集合;行(row): 每一行用来描述某条记录的具体信息;值(value): 行的具体信息, 每个值必须与该列的数据类型相同;键(key): 键的值在当前列中具有唯一性。1.4.2 E-R模型数据库设计核心E-R实体-属性-联系模型是数据库设计的通用建模工具不受数据库类型限制三大组成部分实体Entity客观存在的业务对象学生、老师、商品属性Attribute实体的特征学生姓名、年龄、学号联系Relationship实体之间的关联关系1.4.3 三大实体联系类型一对一1:1A对应唯一BB对应唯一A人-身份证、丈夫-妻子一对多1:n一个A对应多个B一个B仅对应一个A班级-学生、部门-员工多对多m:nA、B互相一对多学生-课程、商品-订单1.4.4 数据库CRUD操作数据库基础操作统称CRUD对应SQL核心关键字操作全称SQL关键字作用增CreateINSERT新增数据查ReadSELECT查询读取数据改UpdateUPDATE更新已有数据删DeleteDELETE删除数据1.4.5 数据库三大范式设计必守规则范式用于规范数据库表结构范式越高数据冗余越低表拆分越细目的是减少数据冗余、避免插入 / 更新 / 删除异常企业开发一般满足3NF即可。第一范式1NF原子性核心规则所有字段必须是不可拆分的原子值一列只能存单一数据禁止复合数据。❌错误示例违反 1NF表格id姓名联系电话1张三138001,139002联系电话这一列存了 2 个号码可以拆分不满足原子性。✅改成符合 1NF拆成 2 条记录或者新建多电话表表格id姓名联系电话1张三1380011张三139002考点只要单元格里面有多个可拆分数据就违反 1NF。第二范式2NF消除部分依赖前提满足1NF核心规则所有非主键字段必须完全依赖整个主键不能仅依赖联合主键的某一部分。适用场景只有复合主键多个字段一起当主键才会出现部分依赖单主键单个字段主键天然满足 2NF不会存在部分依赖。举例子 复合主键(学号,课程号)表格学号课程号学生姓名课程名成绩001C01张三Linux90成绩完全依赖学号 课程号必须两个一起才能确定成绩 ✔学生姓名只依赖学号只需要主键其中一部分就能确定姓名 →部分依赖 ❌违反 2NF✅拆分两张表消除部分依赖 学生表 (学号姓名) 选课表 (学号课程号成绩)第三范式3NF消除传递依赖前提满足2NF核心规则非主键字段之间无依赖关系所有字段直接依赖主键杜绝间接传递依赖。范式总结对比范式核心目标关键规则1NF保证原子性字段不可拆分2NF消除部分依赖非主属性完全依赖主键3NF消除传递依赖非主属性无相互依赖大白话非主键列不能依赖另外一个非主键列。只能全部直接依赖主键。例子用户表表格id (主键)姓名省份城市邮编1张三安徽省滁州市239000邮编可以直接决定城市、省份。城市 → 邮编非主键依赖另一个非主键这就是传递依赖违反 3NF。✅拆分用户表 (id, 姓名邮编)地区表 (邮编城市省份)二、MySQL全方位详解安装特性实操2.1 MySQL简介与发展史2.1.1 发展历程与关键事件MySQL由Michael “Monty” Widenius研发命名源自其女儿名字是全球最流行的开源关系型数据库1995年MySQL首个内部版本发布1996年正式开源2000年切换GPL开源协议个人/商业均可免费使用2003年集成InnoDB存储引擎支持事务、外键2008年Sun公司10亿美金收购MySQL2009年Oracle收购SunMySQL归入Oracle旗下2010年后迭代5.5、5.7、8.0版本8.0为当前主流稳定版2.1.2 MySQL三大主流分支官方MySQLOracle维护稳定商用企业主流选择MariaDBMySQL创始人开源分支完全兼容MySQL社区驱动、更新更快Percona Server基于MySQL优化搭载XtraDB引擎性能、稳定性更强适配高并发场景2.1.3 MySQL核心特性完全开源免费支持二次开发商用成本极低支持标准SQL语句通用性强学习成本低跨平台运行Windows/Linux/Mac支持多语言对接插件式存储引擎可按需选择引擎适配业务单进程多线程架构并发处理能力优秀自带完善的备份、权限、事务、日志管理功能2.2 MySQL多实例部署原理2.2.1 多实例定义单台服务器运行多个MySQL服务进程每个进程独立监听不同端口3306/3307/3308拥有独立配置、独立数据目录客户端通过端口区分访问不同实例。2.2.2 多实例优缺点优点节约硬件资源无需多台服务器部署多版本MySQL统一环境方便版本对比、性能测试、新旧业务切换集中管理统一配置安全规则、备份策略运维高效缺点单服务器资源抢占高并发场景下互相影响性能存在单点故障服务器宕机所有实例同步失效2.3 MySQL组成与常用工具2.3.1 服务端核心组件mysqldMySQL核心服务进程数据库运行核心mysqld_safe安全启动脚本保障服务稳定运行、异常重启mysqld_multi多实例管理工具统一管理多实例启停2.3.2 客户端常用工具mysql交互式命令行客户端核心操作工具mysqldump数据库备份工具支持全量/增量备份mysqladmin服务端管理工具可创建/删除数据库、查看状态mysqlimport批量数据导入工具2.3.3 配置文件生效顺序优先级从高到低~/.my.cnf/etc/mysql/my.cnf/etc/my.cnf2.4 linux系统安装mysql使用CentOS Stream 8安装8.0.26版本的MySQL# 安装mysql软件[rootlocalhost ~]# dnf install -y mysql-server-8.0.26# 设置开机自启同时启动服务[rootlocalhost ~]# systemctl enable mysqld --now# 查看服务端口是否启动[rootlocalhost ~]# ss -nlp | grep 3306# 登录及初始化MySQL[rootlocalhost ~]# mysql # 当前用户为root8.0.x在安装完成后root的默认密码为空,不需要输入密码即可登录mysqlALTERUSERrootlocalhostIDENTIFIED BYHuawei123;# 设置root密码为Huawei1232.5 MySQL客户端实操命令大全2.5.1 客户端登录常用参数# 常用参数-V/--version# 查看客户端版本-u/--user# 指定登录用户名-p/--password# 指定登录密码-h/--host# 指定服务端IP-P/--port# 指定端口默认3306-D/--database# 登录直接指定数据库-E/--vertical# 垂直展示查询结果-e/--execute# 非交互式执行SQL并退出实操范例# 账号密码登录mysql-uroot-pHuawei123# 指定IP端口登录mysql-uroot-h127.0.0.1-P3306# 查看版本mysql-V# 非交互式执行查询mysql-eshow databases;2.5.2 常用客户端内置命令\h / ?查看帮助\c / clear清空当前未执行的SQL语句\q / exit / quit退出MySQL客户端\s / status查看数据库连接、编码、版本状态\u / use 库名切换数据库source 脚本路径导入SQL脚本文件delimiter修改SQL语句结束符三、总结本章主要包含数据库基础原理与MySQL基础实操两大核心内容。数据库原理区分三类数据结构掌握数据管理三阶段差异、DB/DBMS/DBA核心概念、E-R模型、实体关系、CRUD操作与三大设计范式奠定数据库理论基础。MySQL基础熟悉MySQL发展、分支与核心特性理解多实例部署场景掌握数据库组件、工具、配置优先级以及客户端常用实操命令具备基础运维与操作能力。整体做到懂理论、会实操为后续SQL进阶、数据库优化与运维学习打下扎实基础。