本系列可作为数据库学习系列的笔记文中提到的一些练习的代码小编会将代码复制下来大家复制下来就可以练习了方便大家学习。点赞关注不迷路您的点赞、关注和收藏是对小编最大的支持和鼓励系列文章目录JAVA初阶---------已更完JAVA数据结构---------已更完数据库---Day 1 数据库基础数据库---Day2 数据库操作数据库---Day3 数据类型数据库---Day4 数据表的操作数据库---Day5 数据表的增删改查数据库---Day6 数据库约束数据库---Day7 数据表设计目录目录系列文章目录目录前言一、数据库核心认知是什么为什么用1.1 数据库的定义1.2 为什么必须使用数据库1.3 主流数据库分类关系型与非关系型1.3.1 关系型数据库1.3.2 非关系型数据库1.4 关系型数据库的核心关系模型二、MySQL 安装与配置Windows/Linux 基础操作2.1 MySQL 核心程序mysqld 服务端2.2 数据库服务器、数据库、表的层级关系2.3 MySQL 配置文件修改自定义基础参数三、MySQL 客户端工具命令行与可视化双选择3.1 自带命令行工具mysql3.2 官方可视化工具MySQL Workbench3.3 业内主流可视化工具Navicat Lite四、客户端与服务器的通讯架构C/S 与 B/S4.1 C/S 架构客户端 / 服务器架构4.2 B/S 架构浏览器 / 服务器架构4.3 核心区别五、SQL 入门结构化查询语言的核心分类5.1 SQL 的定义5.2 SQL 的三大核心分类5.2.1 DDL数据定义语言5.2.2 DML数据操纵语言5.2.3 DCL数据控制语言六、MySQL 架构解析分层设计灵活可扩展6.1 连接层6.2 服务层6.3 存储引擎层6.4 文件系统层6.5 外部连接器七、MySQL 存储引擎核心数据处理组件按需选择7.1 存储引擎的核心特性7.2 查看 MySQL 支持的存储引擎7.3 主流存储引擎对比InnoDB、MyISAM、MEMORY7.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张三男12李四女13王五男2班级表 - 编号班级1java1132java783java23二、MySQL 安装与配置Windows/Linux 基础操作MySQL 作为开源免费的主流关系型数据库是入门学习的首选其安装配置分为Windows和Linux两大系统核心是完成服务端程序部署和基础配置修改。2.1 MySQL 核心程序mysqld 服务端MySQL 安装完成后在安装目录的bin文件夹下会存在核心可执行程序Linux 系统mysqldWindows 系统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]节点port3306MySQL 服务端口可修改为未被占用的端口如 3307datadir数据存储目录修改后需将原数据目录整体复制到新路径character-set-serverutf8mb4服务端默认字符集推荐使用 utf8mb4兼容 emojidefault-storage-engineINNODB默认存储引擎MySQL8.0 默认为 InnoDB日志配置通用日志、慢查询日志、错误日志的开启状态和存储路径修改后操作配置文件修改完成后必须重启 MySQL 服务才能生效。三、MySQL 客户端工具命令行与可视化双选择MySQL 服务启动后需通过客户端工具连接服务器并执行 SQL 操作主流工具分为命令行工具和可视化工具分别适用于快速操作和开发调试场景。3.1 自带命令行工具mysqlMySQL 安装后自带的原生命令行工具无需额外安装操作简洁适合快速执行简单 SQL 或服务器端操作核心使用步骤检查系统PATH 环境变量是否配置了 MySQL 的bin目录未配置则需手动添加否则无法全局调用打开终端 / 命令提示符输入连接命令mysql -uroot -p其中-u后接用户名默认 root-p表示需要输入密码输入 MySQL 安装时设置的密码验证通过后进入 MySQL 交互界面执行 SQL 语句语句需以分号结尾示例-- 查询MySQL版本 select version();交互界面中可输入help;或\h查看帮助\c清空当前输入的未完成语句。3.2 官方可视化工具MySQL WorkbenchMySQL 官方提供的免费可视化客户端工具功能全面支持数据库设计、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对于客户端与服务器之间的交互模型我们称为C/S架构。 MySQL 客户端与服务器的通讯遵循C/S 架构这是数据库交互的核心架构同时需了解互联网主流的B/S 架构明确二者的区别和适用场景。4.1 C/S 架构客户端 / 服务器架构全称Client/Server 架构属于两层架构是 MySQL 客户端与服务器通讯的核心模式。架构组成客户端安装专用客户端软件 服务器运行 MySQL 服务端程序通讯方式客户端通过 Socket 协议向服务器发送请求服务器处理后返回响应适用场景固定用户群体、对交互性和响应速度要求高的场景如数据库客户端、QQ、网络游戏、办公软件优点大部分业务逻辑在客户端完成充分利用本地计算机资源响应速度快个性化定制能力强面向固定用户数据安全控制能力强缺点客户端需安装专用软件用户使用门槛高维护成本高客户端版本更新、故障修复需逐台操作。补1.客户端和服务前之间是通过网络进行交互的本机的客户端访问本机的数据库服务是不是C/S架构虽然我们访问的是本机的服务但是还是通过网络访问的只不过客户端和服务器在同一台电脑上而已每台电脑都有一个环回网卡本地有一个固定的IP:127.0.0.1这个IP代表的就是本机IP。无论本机是否有网络这个IP始终访问的都是本机地址。2.如果在工作中连接数据库时可以通过指定IP地址去连接相应的服务器可以是内网也可以是外网但有一个安全性的问题如果把服务公开到公网就有可能给黑客带来可乘之机也可以通过防火墙和白名单来限制可以连接到服务器的机器。在公司中一般都是要部署到内网的通过外网是连不上数据库服务器的可以通过跳板机去连接。当前我们数据库安装完成之后只允许本机链接如果其他的机器想连接那么就需要把其他机器的IP加入到白名单中。4.2 B/S 架构浏览器 / 服务器架构全称Browser/Server 架构是对 C/S 架构的改进属于三层架构浏览器 应用服务器 数据库服务器。架构组成客户端仅需浏览器 应用服务器处理业务逻辑 数据库服务器存储数据通讯方式浏览器通过 HTTP 协议向应用服务器发送请求应用服务器向数据库服务器发起数据操作请求处理后逐层返回响应适用场景公开用户群体、互联网产品如电商网站、社交平台、各类 Web 应用优点客户端零维护仅需安装浏览器用户使· 1用门槛极低业务逻辑集中在服务器端版本更新、功能扩展仅需维护服务器跨平台性好支持不同操作系统、不同浏览器访问缺点服务器承担所有业务逻辑和数据处理对服务器性能、安全性要求高运维成本大受浏览器兼容性限制部分高级功能实现难度大响应速度受网络影响较大。4.3 核心区别MySQL 的本地客户端如 Navicat、Workbench属于纯 C/S 架构而通过网页管理数据库则属于 B/S 架构应用服务器作为中间层连接浏览器和 MySQL 服务器。五、SQL 入门结构化查询语言的核心分类操作关系型数据库的通用语言是SQL无论使用哪种关系型数据库都需掌握 SQL其语法具有通用性仅部分细节存在差异。SQL本身就是针对数据库操作的语言和数据库是两个概念不要搞混了。这门语言非常简单在初阶只需要掌握简单的增删改查以及一些复杂的查询即可。5.1 SQL 的定义SQLStructured Query Language即结构化查询语言是一种专门用于存取、查询、更新和管理关系型数据库的标准语言具备简洁、通用、非过程化的特点无需关注具体执行步骤只需说明 “做什么”。5.2 SQL 的三大核心分类根据功能不同SQL 可分为DDL、DML、DCL三大类覆盖数据库结构管理、数据操作、权限管理全场景是学习 SQL 的基础框架。5.2.1 DDL数据定义语言核心作用维护和管理数据库的存储结构即定义数据库、表、索引、视图等对象的结构操作后会永久改变数据库结构。代表指令create创建、drop删除、alter修改示例-- 创建数据库 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查询示例-- 插入数据 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回滚事务示例-- 授予用户查询test_db数据库的权限 grant select on test_db.* to user1localhost; -- 回收用户的查询权限 revoke select on test_db.* from user1localhost; -- 提交事务 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 服务器本身不负责数据存储仅通过接口调用存储引擎的功能不同存储引擎的实现方式不同提供的功能也有差异如是否支持事务、索引类型默认存储引擎InnoDBMySQL8.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表示默认存储引擎。-- 查看所有存储引擎 show engines;MySQL8.0 主流支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、ARCHIVE、BLACKHOLE 等其中InnoDB 为默认存储引擎。7.3 主流存储引擎对比InnoDB、MyISAM、MEMORY三者是 MySQL 最常用的存储引擎功能差异显著适用于不同场景核心对比如下表关键特性特性MyISAMMEMORYInnoDB事务支持不支持不支持支持行级锁 / 表级锁表级锁表级锁行级锁外键支持不支持不支持支持索引类型B-treeB-tree/HashB-tree数据缓存不支持内存存储支持集群索引不支持不支持支持全文索引支持不支持支持地理空间索引支持不支持支持存储介质磁盘内存磁盘最大存储限制256TB内存大小64TBMVCC多版本并发控制不支持不支持支持7.4 主流存储引擎适用场景InnoDBMySQL8.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 语法实操入手逐步掌握表结构设计、数据增删改查、多表关联查询、索引优化等内容结合实际项目加深对数据库知识的理解和应用。总结以上就是今天要讲的内容本文简单记录了数据结构学习内容仅作为一份简单的笔记使用大家根据注释理解您的点赞关注收藏就是对小编最大的鼓励