数据库---Day 1 数据库基础

本系列可作为数据库学习系列的笔记,文中提到的一些练习的代码,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励! 

系列文章目录

JAVA初阶---------已更完

JAVA数据结构---------已更完

数据库---Day 1 数据库基础

数据库---Day2 数据库操作

数据库---Day3 数据类型

数据库---Day4 数据表的操作

数据库---Day5 数据表的增删改查

数据库---Day6 数据库约束

数据库---Day7 数据表设计

数据库---Day8 多表联合查询

数据库---Day9 视图

数据库---Day10 索引

数据库---Day11 事务

数据库---Day12 JDBC


目录

目录

系列文章目录

目录

前言

一、数据库核心认知:是什么?为什么用?

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 自带命令行工具:mysql

3.2 官方可视化工具:MySQL Workbench

3.3 业内主流可视化工具:Navicat Lite

四、客户端与服务器的通讯架构:C/S 与 B/S

4.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、MEMORY

7.4 主流存储引擎适用场景

八、总结

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

在计算机科学与技术领域,数据库技术是处理非数值计算数据的核心,自 20 世纪 60 年代末发展以来,已成为各类应用开发、数据管理的基础支撑。无论是中小型电商系统,还是大型企业级项目,都离不开数据库的加持。本文将从数据库基础概念出发,深入讲解关系型数据库核心知识、MySQL 的安装配置、客户端工具使用,同时解析 SQL 分类、MySQL 架构及存储引擎,为零基础学习者搭建完整的数据库入门知识体系。

一、数据库核心认知:是什么?为什么用?

1.1 数据库的定义

数据库技术专门解决数据处理的非数值计算问题,核心围绕数据的存储、查询、修改、排序和统计展开,是一套系统化的数据管理解决方案,而数据库则是按照特定结构组织、存储和管理数据的集合。

1.2 为什么必须使用数据库?

相比单纯使用文件存储数据,数据库具备不可替代的优势,也是企业级应用选择数据库的核心原因:

  1. 数据持久化:数据保存在专用存储介质中,应用关闭、服务器重启后数据不丢失,实现长期存储。
  2. 数据结构化:以规范的结构组织数据,摆脱文件存储的杂乱性,让数据管理和查询更高效。
  3. 数据完整性:数据库管理系统(DBMS)提供约束机制,确保数据的准确性和一致性,避免脏数据、重复数据。
  4. 并发控制:支持多用户 / 进程同时访问和修改数据,同时保证数据一致性,解决文件存储的并发冲突问题。
  5. 安全性:提供访问控制、数据加密等多种安全机制,防止数据被未授权访问、篡改。
  6. 可扩展性:支持水平(增加服务器节点)或垂直(提升单服务器配置)扩展,适配数据量和访问量的增长。
  7. 备份和恢复:内置完善的备份恢复机制,可应对数据丢失、损坏等突发情况,降低数据风险。
  8. 查询优化:自带高效的查询优化器,能快速执行复杂的多表关联、条件筛选等查询操作。
  9. 事务管理:主流关系型数据库均支持事务,遵循 ACID 原则,确保一系列操作 “要么全成,要么全败”,提升操作可靠性。
  10. 多用户支持:天然适配多用户协作场景,满足企业团队、互联网产品的多端数据操作需求。

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
班级表 - 编号班级
1java113
2java78
3java23

二、MySQL 安装与配置:Windows/Linux 基础操作

MySQL 作为开源免费的主流关系型数据库,是入门学习的首选,其安装配置分为WindowsLinux两大系统,核心是完成服务端程序部署和基础配置修改。

2.1 MySQL 核心程序:mysqld 服务端

MySQL 安装完成后,在安装目录的bin文件夹下会存在核心可执行程序:

  • Linux 系统:mysqld
  • Windows 系统:mysqld.exe该程序运行后,MySQL 服务即启动;若将 MySQL 配置为自启动,操作系统开机时会自动运行mysqld,无需手动启动服务。

2.2 数据库服务器、数据库、表的层级关系

MySQL 的核心数据管理采用三层层级结构,理解这一关系是后续操作的基础:

  1. 数据库服务器:安装了 MySQL 数据库管理系统的机器 / 程序,一个服务器可管理多个数据库
  2. 数据库:为单个应用 / 业务模块创建的独立数据空间,开发中通常一个应用对应一个数据库;
  3. :数据库中存储具体实体数据的二维表格,一个数据库可包含多个表,表是数据存储的最小单位。

简单总结:服务器管理多个数据库,数据库包含多个表,表存储具体数据

2.3 MySQL 配置文件修改:自定义基础参数

MySQL 安装后有默认配置(如端口 3306、字符集 utf8mb4),若需修改端口、数据目录、存储引擎等,可通过选项配置文件实现,核心注意点如下:

  1. Windows 系统默认路径C:\ProgramData\MySQL\MySQL Server 8.0\my.ini(需用支持 UTF8 的编辑器打开);
  2. Linux 系统配置文件:进阶内容,通常为/etc/my.cnf/usr/my.cnf
  3. 核心配置节点
    • [client]:所有 MySQL 客户端的统一配置,如默认字符集、端口;
    • [mysql]:仅针对 MySQL 自带命令行客户端的配置;
    • [mysqld]:MySQL 服务端核心配置,是修改的主要节点,包含端口、数据目录、默认存储引擎、日志路径等;
  4. 关键配置项[mysqld]节点):
    • port=3306:MySQL 服务端口,可修改为未被占用的端口(如 3307);
    • datadir:数据存储目录,修改后需将原数据目录整体复制到新路径;
    • character-set-server=utf8mb4:服务端默认字符集,推荐使用 utf8mb4(兼容 emoji);
    • default-storage-engine=INNODB:默认存储引擎,MySQL8.0 默认为 InnoDB;
    • 日志配置:通用日志、慢查询日志、错误日志的开启状态和存储路径;
  5. 修改后操作:配置文件修改完成后,必须重启 MySQL 服务才能生效。

三、MySQL 客户端工具:命令行与可视化双选择

MySQL 服务启动后,需通过客户端工具连接服务器并执行 SQL 操作,主流工具分为命令行工具可视化工具,分别适用于快速操作和开发调试场景。

3.1 自带命令行工具:mysql

MySQL 安装后自带的原生命令行工具,无需额外安装,操作简洁,适合快速执行简单 SQL 或服务器端操作,核心使用步骤:

  1. 检查系统PATH 环境变量是否配置了 MySQL 的bin目录(未配置则需手动添加,否则无法全局调用);
  2. 打开终端 / 命令提示符,输入连接命令:
    mysql -uroot -p
    
    其中-u后接用户名(默认 root),-p表示需要输入密码;
  3. 输入 MySQL 安装时设置的密码,验证通过后进入 MySQL 交互界面;
  4. 执行 SQL 语句,语句需以分号; 结尾,示例:
    -- 查询MySQL版本
    select version();
    
  5. 交互界面中可输入help;\h查看帮助,\c清空当前输入的未完成语句。

3.2 官方可视化工具:MySQL Workbench

MySQL 官方提供的免费可视化客户端工具,功能全面,支持数据库设计、SQL 编辑、数据查询、表结构管理等,核心特点:

  1. 安装后自动识别本地 MySQL 实例,直接点击 “Local instance MySQL8.0” 即可连接;
  2. 界面分为SQL 编辑区(编写 / 运行 SQL)、数据库列表区(展示所有数据库和表)、结果显示区(展示 SQL 执行结果)、信息提示区(显示执行时间、状态);
  3. 支持可视化设计表结构、创建索引、建立表关联,适合开发阶段的数据库设计和调试。

3.3 业内主流可视化工具:Navicat Lite

业内使用最广泛的 MySQL 可视化工具,推出了免费的 Lite 版本,功能满足学习和中小型开发需求,操作更贴合开发者习惯,核心使用步骤:

  1. 新建连接:选择 MySQL 连接类型,配置连接信息(连接名称、主机localhost、端口 3306、用户名 root、密码);
  2. 测试连接:配置完成后点击 “测试连接”,提示 “连接成功” 即可保存;
  3. 新建查询:打开连接后,点击 “新建查询” 进入 SQL 编辑区,编写并运行 SQL;
  4. 核心功能:支持表结构可视化修改、数据批量编辑、SQL 美化、备份恢复等,操作简洁高效。

四、客户端与服务器的通讯架构:C/S 与 B/S

对于客户端与服务器之间的交互模型,我们称为C/S架构。 MySQL 客户端与服务器的通讯遵循C/S 架构,这是数据库交互的核心架构,同时需了解互联网主流的B/S 架构,明确二者的区别和适用场景。

4.1 C/S 架构:客户端 / 服务器架构

全称:Client/Server 架构,属于两层架构,是 MySQL 客户端与服务器通讯的核心模式。

  1. 架构组成:客户端(安装专用客户端软件)+ 服务器(运行 MySQL 服务端程序);
  2. 通讯方式:客户端通过 Socket 协议向服务器发送请求,服务器处理后返回响应;
  3. 适用场景:固定用户群体、对交互性和响应速度要求高的场景,如数据库客户端、QQ、网络游戏、办公软件;
  4. 优点
    • 大部分业务逻辑在客户端完成,充分利用本地计算机资源;
    • 响应速度快,个性化定制能力强;
    • 面向固定用户,数据安全控制能力强;
  5. 缺点
    • 客户端需安装专用软件,用户使用门槛高;
    • 维护成本高,客户端版本更新、故障修复需逐台操作。

补:

1. 客户端和服务前之间是通过网络进行交互的,本机的客户端访问本机的数据库服务是不是C/S架构?
虽然我们访问的是本机的服务,但是还是通过网络访问的,只不过客户端和服务器在同一台电脑上而已,每台电脑都有一个环回网卡,本地有一个固定的IP:127.0.0.1,这个IP代表的就是本机IP。无论本机是否有网络,这个IP始终访问的都是本机地址。

2. 如果在工作中,连接数据库时,可以通过指定IP地址去连接相应的服务器,可以是内网也可以是外网,但有一个安全性的问题,如果把服务公开到公网,就有可能给黑客带来可乘之机,也可以通过防火墙和白名单,来限制可以连接到服务器的机器。在公司中一般都是要部署到内网的,通过外网是连不上数据库服务器的,可以通过跳板机去连接。

当前我们数据库安装完成之后,只允许本机链接,如果其他的机器想连接那么就需要把其他机器的IP加入到白名单中。

4.2 B/S 架构:浏览器 / 服务器架构

全称:Browser/Server 架构,是对 C/S 架构的改进,属于三层架构(浏览器 + 应用服务器 + 数据库服务器)。

  1. 架构组成:客户端(仅需浏览器)+ 应用服务器(处理业务逻辑)+ 数据库服务器(存储数据);
  2. 通讯方式:浏览器通过 HTTP 协议向应用服务器发送请求,应用服务器向数据库服务器发起数据操作请求,处理后逐层返回响应;
  3. 适用场景:公开用户群体、互联网产品,如电商网站、社交平台、各类 Web 应用;
  4. 优点
    • 客户端零维护,仅需安装浏览器,用户使·        1用门槛极低;
    • 业务逻辑集中在服务器端,版本更新、功能扩展仅需维护服务器;
    • 跨平台性好,支持不同操作系统、不同浏览器访问;
  5. 缺点
    • 服务器承担所有业务逻辑和数据处理,对服务器性能、安全性要求高,运维成本大;
    • 受浏览器兼容性限制,部分高级功能实现难度大;
    • 响应速度受网络影响较大。

4.3 核心区别

MySQL 的本地客户端(如 Navicat、Workbench) 属于纯 C/S 架构;而通过网页管理数据库则属于 B/S 架构,应用服务器作为中间层连接浏览器和 MySQL 服务器。

五、SQL 入门:结构化查询语言的核心分类

操作关系型数据库的通用语言是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(修改)示例

-- 创建数据库
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 '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 存储引擎的核心特性

  1. 可插拔架构:服务器运行时可动态加载 / 卸载,无需重启 MySQL 服务;
  2. 功能差异化:不同存储引擎对事务、锁机制、索引、外键等功能的支持不同;
  3. 场景化适配:根据业务场景(如是否需要事务、是否追求查询速度、是否存储临时数据)选择对应的存储引擎。

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内存大小64TB
MVCC(多版本并发控制)不支持不支持支持

7.4 主流存储引擎适用场景

  1. InnoDB:MySQL8.0 默认存储引擎,全能型存储引擎,支持事务、行级锁、外键、MVCC,适合对数据一致性、安全性要求高的场景,如电商系统、金融系统、企业级应用,是绝大多数业务的首选。
  2. MyISAM:经典存储引擎,不支持事务和行级锁,但查询速度快,适合只读 / 读多写少的场景,如博客、静态网站、数据统计报表(MySQL8.0 中已逐步被 InnoDB 替代)。
  3. MEMORY:内存存储引擎,数据全部存于内存,读写速度极快,重启后数据丢失,适合临时数据存储、高速查询的场景,如临时表、缓存中间结果。
  4. CSV:以 CSV 格式存储数据,适合数据导入导出,方便与其他系统交互。
  5. ARCHIVE:归档存储引擎,压缩比高,适合存储大量历史归档数据,仅支持插入和查询,不支持修改删除。

八、总结

数据库技术是计算机开发的基础技能,而 MySQL 作为开源免费的主流关系型数据库,是入门的最佳选择。本文从数据库基础概念出发,讲解了关系型与非关系型数据库的区别、MySQL 的安装配置、客户端工具使用,同时解析了 C/S/B/S 架构、SQL 三大分类、MySQL 分层架构及存储引擎核心知识,搭建了从概念到实操的完整入门体系。

核心重点回顾:

  1. 关系型数据库的核心是二维表格模型,表之间通过关联字段建立关系;
  2. MySQL 的三层层级关系:服务器→数据库→表,是数据管理的基础;
  3. SQL 分为DDL(定义结构)、DML(操作数据)、DCL(控制权限),是操作数据库的通用语言;
  4. MySQL 采用分层架构,存储引擎层为可插拔设计,InnoDB是默认且适用绝大多数场景的存储引擎;
  5. 客户端与 MySQL 服务器的通讯遵循C/S 架构,可视化工具(Navicat、Workbench)是开发的主流选择。

后续学习可从SQL 语法实操入手,逐步掌握表结构设计、数据增删改查、多表关联查询、索引优化等内容,结合实际项目加深对数据库知识的理解和应用。


总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yvonne爱编码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值