大家好,最近在系统梳理 MySQL 数据库基础知识点,结合学习资料整理了这篇超详细、零基础友好的 MySQL 入门博客,涵盖数据库本质、主流数据库对比、MySQL 安装连接、库表操作、SQL 分类、存储引擎等核心内容,无论是课堂作业、面试复习还是入门自学,都能直接用。
一、为什么要使用数据库?文件存储到底差在哪?
很多刚接触编程的同学都会有一个疑问:存数据用普通文件不就行了,为什么非要用数据库?
其实文件存储数据有非常明显的缺陷,这也是数据库诞生的核心原因:
- 安全性极差文件容易被误删、篡改、泄露,没有权限控制,任何人都能打开修改。
- 查询与管理极其低效文件只能顺序读取,想快速查找某条数据非常麻烦,无法实现高效筛选、排序、统计。
- 无法支撑海量数据小数据量用文件没问题,一旦数据达到百万、千万级,文件读写会卡死,完全扛不住。
- 程序控制不方便在代码里读写文件需要手动处理格式、异常、并发,开发成本极高,还容易出错。
而数据库就是为了解决以上所有问题设计的高效数据管理工具,它能统一存储、规范管理、安全控制、高速查询,是后端开发的核心基础。
数据库的数据主要存储在两个介质:
- 磁盘:持久化存储,断电不丢失,用于保存所有真实数据。
- 内存:高速缓存,提升查询速度,用于临时存放高频使用的数据。
二、主流数据库全面对比(常用 + 面试高频)
目前业界有很多数据库产品,适用场景各不相同,下面是最常用的数据库介绍:
1. MySQL
- 目前世界上最受欢迎的开源关系型数据库。
- 隶属甲骨文公司,并发性能极强。
- 适合电商、社交、论坛、Web 应用等中高并发场景。
- 优点:轻量、高效、免费、生态完善。
- 缺点:不适合极其复杂的业务逻辑。
2. Oracle
- 甲骨文公司的商用重量级数据库。
- 适合大型项目、金融、银行、复杂业务系统。
- 功能最全面,安全性极高,但费用昂贵。
3. SQL Server
- 微软旗下数据库,.NET 技术栈首选。
- 界面友好,适合中大型项目,Windows 生态兼容性强。
4. PostgreSQL
- 加州大学伯克利分校开发的开源关系型数据库。
- 免费使用、修改、分发,功能强大,扩展性极高。
5. SQLite
- 超轻量级嵌入式数据库,核心代码只有几百 K。
- 无需安装、无独立进程,直接嵌入程序使用。
- 广泛用于手机 App、嵌入式设备、小型工具软件。
6. H2
- Java 语言开发的嵌入式数据库。
- 纯 Java 实现,可直接嵌入 Java 项目,常用于单元测试。
三、MySQL 基础使用(安装、连接、服务管理)
1. MySQL 安装方式
不同系统安装方式不同,常用方案:
- Windows:安装 MySQL 5.7 / 8.0 版本。
- CentOS 7:通过 yum 安装 MariaDB(MySQL 分支)。
- CentOS 6.5:源码编译安装 MySQL 5.6。
2. 连接 MySQL 服务器
安装完成后,通过命令行连接 MySQL:
bash
运行
mysql -h 127.0.0.1 -P 3306 -u root -p参数说明:
-h:数据库主机地址,不写默认连接本地。-P:端口号,MySQL 默认端口 3306,不写默认 3306。-u:登录用户名,默认管理员 root。-p:登录密码,执行后输入密码即可。
连接成功后会显示:
plaintext
Welcome to the MySQL monitor. Commands end with ; or \g.3. MySQL 服务管理(Windows)
想启动 / 停止 / 重启 MySQL,用系统服务管理器:
- 按下
Win + R。 - 输入
services.msc打开服务。 - 找到
MySQL57或MySQL80,即可控制服务状态。
4. 核心关系:服务器 → 数据库 → 表
很多新手搞不清三者的关系,这里用最通俗的话解释:
- 数据库服务器:你安装的 MySQL 软件,一台电脑可以装一个。
- 数据库(DB):服务器里的 “大文件夹”,一个服务器可以建很多库。
- 表:库里面的 “表格”,一个库可以建很多张表,真正存数据的地方是表。
简单层级:MySQL 服务器→多个数据库→多张数据表→多条数据记录
四、MySQL 基础操作案例(从建库到查询)
下面是一套最完整、最标准的 MySQL 入门操作流程,新手必须背会:
1. 创建数据库
sql
CREATE DATABASE helloworld;2. 使用数据库(进入库)
sql
USE helloworld;3. 创建数据表
以学生表为例,包含 id、姓名、性别:
sql
CREATE TABLE student( id INT, name VARCHAR(32), gender VARCHAR(2) );字段说明:
id INT:学号,整数类型。name VARCHAR(32):姓名,字符串类型,最长 32 字符。gender VARCHAR(2):性别,存男 / 女。
4. 向表中插入数据
sql
INSERT INTO student (id, name, gender) VALUES (1, '张三', '男'); INSERT INTO student (id, name, gender) VALUES (2, '李四', '女'); INSERT INTO student (id, name, gender) VALUES (3, '王五', '男');5. 查询表中所有数据
sql
SELECT * FROM student;执行结果:
plaintext
+------+--------+--------+ | id | name | gender | +------+--------+--------+ | 1 | 张三 | 男 | | 2 | 李四 | 女 | | 3 | 王五 | 男 | +------+--------+--------+五、MySQL 整体架构(理解底层原理)
MySQL 是一个跨平台数据库,支持 Windows、Linux、Mac 等系统,且底层结构保持一致。
整体架构分为三层:
- 客户端层负责连接 MySQL,支持 JDBC、ODBC、PHP、Python、C 等各种语言连接。
- 服务层(核心层)连接管理、权限验证、SQL 解析、SQL 优化、查询缓存、存储过程、触发器、视图等。
- 存储引擎层 + 文件系统层真正负责数据存储、索引管理、数据读写,是 MySQL 的核心特色。
六、SQL 语言三大分类(面试必考)
SQL 是操作数据库的语言,按功能分为三类,必须严格区分:
1. DDL 数据定义语言
作用:管理数据库 / 表的结构(建库、建表、改表、删库、删表)关键字:
CREATE:创建(库、表、索引)DROP:删除(库、表)ALTER:修改表结构(加字段、改字段、删字段)
2. DML 数据操纵语言
作用:操作表中的数据(增、删、改)关键字:
INSERT:插入数据DELETE:删除数据UPDATE:修改数据
其中查询单独划分:DQL 数据查询语言
SELECT:查询数据
3. DCL 数据控制语言
作用:管理权限、事务关键字:
GRANT:授权REVOKE:回收权限COMMIT:提交事务
七、存储引擎(MySQL 最核心特性)
1. 什么是存储引擎?
存储引擎就是MySQL 存储数据、建立索引、更新 / 查询数据的具体实现方式。
简单理解:存储引擎 = 数据库的 “存储模式”,不同引擎存数据的方式不一样。
2. MySQL 存储引擎特点
MySQL 最核心的设计就是插件式存储引擎,可以自由切换、按需使用。
3. 查看所有存储引擎
sql
SHOW ENGINES;4. 常见存储引擎
- InnoDB:MySQL 默认引擎,支持事务、外键、行锁,适合大多数业务。
- MyISAM:查询速度极快,不支持事务,适合只读场景。
- Memory:数据存在内存,速度最快,断电丢失。
- Archive:只支持插入和查询,用于日志存储。
- Cluster:分布式集群引擎。
八、总结(快速回顾)
- 数据库解决了文件存储不安全、难管理、效率低的问题。
- MySQL 是最流行开源数据库,适合高并发 Web 项目。
- 操作层级:服务器 → 数据库 → 表 → 数据。
- 基础流程:建库 → 建表 → 插入 → 查询。
- SQL 分三类:DDL(结构)、DML(数据)、DCL(权限)。
- 存储引擎是 MySQL 核心,支持插件式切换。
这篇 MySQL 基础笔记覆盖了入门所有核心知识点,适合新手打基础、学生写作业、面试前快速复习。