第1讲:入门篇------把MySQL当成Excel来学
目标: 建立认知模型,理解MySQL的本质
开篇:Excel你肯定用过吧?
先问你个问题:你觉得"关系型数据库管理系统"这几个字听起来怎么样?是不是脑袋都大了?
别怕。咱们今天不讲这些唬人的术语。我直接告诉你:MySQL就是能让几百人一起用、还不会卡的"超级Excel"。
你平时用Excel记账、做表格对吧?MySQL干的事儿跟这个一模一样,就是把数据记下来、查出来、改一改。区别在哪?Excel是你一个人用的小本本,MySQL是公司几百号人一起用的大账本。
今天这篇文章,我就用Excel来类比MySQL。保证你看完就懂,不整那些虚的。
一、Excel用着用着,你肯定遇到过这些糟心事
想象一下:你们公司销售部50个人,要一起维护一份"客户信息表"。每天谁拜访了哪个客户、谈了什么、有没有成交,都得记到这个表里。
用Excel的话,以下场景你肯定似曾相识:
糟心事1:我刚改的数据怎么不见了?
早上10点,小王打开Excel改了客户A的电话。同一时间,小李也打开了这个文件,改了客户B的成交状态。
结果呢?后保存的人直接把前一个人的修改覆盖了。小王中午一看,懵了:我改的电话怎么又变回去了?
就算你用Office 365的协同编辑,50个人一起操作,Excel照样卡得要死。有时候鼠标点半天都没反应,急死个人。
MySQL怎么解决的?
成百上千人同时改数据也不会乱。你改你的,我改我的,谁也不挡着谁。如果两个人同时要改同一条数据,MySQL会让一个人先改,另一个人等着,改完了再轮到你。就像排队,有秩序。
糟心事2:10万行数据,打开要等3分钟
客户越来越多,Excel文件越来越大。从1万行涨到10万行,再到50万行...
打开文件?等吧,转圈圈。筛选个数据?继续等。做个数据透视表?直接卡死给你看。
Excel理论上能存104万行,但实际上超过5万行就很慢了。我见过最夸张的,一个20万行的Excel,打开要等5分钟,改个数据都得祈祷别崩溃。
MySQL怎么解决的?
百万、千万甚至上亿条数据都不在话下。查数据?0.01秒就出结果。这是怎么做到的?靠的是"索引"技术,后面的课我们会细讲。
糟心事3:手一抖,半年数据全没了
Excel最怕的就是误操作:
小张不小心按了Ctrl+Z,上午录的100条数据全撤销了,想哭。
小刘筛选后把数据删了,没注意还有隐藏行,几千条记录一下就没了。
更惨的是文件损坏打不开,之前又没备份,欲哭无泪。
还有离职员工临走前把重要数据复制走了,你都不知道。
MySQL怎么解决的?
权限管理:谁能看、谁能改、谁能删,都能设置。实习生就给个查询权限,想删数据?门都没有。
自动备份:每天自动备份,误删了数据可以恢复到任意时间点。就像时光机,想回到哪个时刻都行。
操作日志:谁改了什么数据,什么时候改的,都有记录。出了问题能追溯。
二、MySQL和Excel长得一模一样
理解MySQL其实很简单,你就把它想象成Excel的升级版就行。我给你对照着看:

一张表看懂对应关系
| MySQL叫什么 | Excel叫什么 | 大白话解释 | 
|---|---|---|
| 数据库(Database) | 一个Excel文件 | 就是个容器,里面放各种表 | 
| 表(Table) | 一个Sheet工作表 | 具体存数据的地方 | 
| 字段(Field) | 列(比如A列"姓名") | 数据的分类,比如姓名、年龄 | 
| 记录(Record) | 一行数据 | 一条完整的信息 | 
| 主键(Primary Key) | ID列或学号列 | 唯一标识,就像身份证号 | 
举个栗子
比如你要管理公司员工信息。
用Excel怎么干?
新建个Excel文件,叫"公司管理.xlsx"。里面建个Sheet,叫"员工信息"。然后设置列名:A列"工号",B列"姓名",C列"年龄",D列"部门",E列"薪资"。接着手动输入数据:10001 张三 25 技术部 8000。
用MySQL怎么干?
创建一个数据库,叫"company_db"(相当于新建Excel文件)。在数据库里创建一个表,叫"employee"(相当于新建Sheet)。定义字段:id、name、age、dept、salary。插入数据:10001 张三 25 技术部 8000。
看出来了吗?干的事儿一模一样。唯一的区别:
- Excel用鼠标点点点,MySQL用命令(SQL语句)
- Excel的列名随便写,MySQL的字段要指定类型(比如年龄必须是数字)
- Excel适合几千行,MySQL能处理百万、千万行
三、MySQL凭什么这么牛?
你可能会好奇:MySQL凭啥能解决Excel的这些问题?它到底用了什么黑科技?
其实也没那么玄乎,就三招。
第一招:锁机制和事务------让几千人一起改数据也不会乱
Excel多人编辑会覆盖,MySQL怎么解决的?
靠"锁"。就像银行ATM,你在用的时候,别人只能排队等着。MySQL也是这样,小王在改客户A的数据时,MySQL会把这条数据"锁住",小李想改?等着吧,等小王改完保存了你再改。
还有个更厉害的叫"事务"。比如银行转账,必须"扣款"和"加款"同时成功,要么都成功,要么都失败,不能扣了钱但没加上,那就出大事了。MySQL也能保证这个,后面会专门讲。
第二招:索引------在千万条数据里0.01秒找到你要的那一条
Excel筛选10万行数据要等好几秒,MySQL查1000万行只需0.01秒。
这是怎么做到的?靠"索引"。
你想想翻通讯录找人,一页页翻肯定慢。但如果有拼音目录呢?想找"张三",直接翻到Z字母区,几秒就找到了。
MySQL的索引就是这个道理。它会提前建好"目录",查数据的时候直接跳到对应位置,不用从头到尾扫一遍。这个技术叫B+树,后面的课会详细讲,现在你就记住:索引能让查询飞快。
第三招:数据类型约束------从源头杜绝脏数据
Excel最大的问题是什么都能往里填。年龄那一列,你填"abc"也行,填"二十五岁"也行,完全没限制。时间长了,数据就乱了。
MySQL不一样。你创建表的时候,必须说清楚每个字段是什么类型:
- 年龄必须是数字(整数类型)
- 姓名必须是文字(字符串类型)
- 入职日期必须是日期格式
你要是在年龄那一列填"abc",MySQL直接报错拒绝,根本存不进去。
还能设置更多约束:
- 员工工号不能重复(唯一性约束)
- 姓名不能为空(非空约束)
- 性别只能是"男"或"女"(枚举约束)
这样一来,脏数据从源头就被挡住了。
四、跟MySQL说话得用SQL
Excel用鼠标点点点就行,MySQL得用命令。这个命令叫SQL(Structured Query Language,结构化查询语言)。听着挺吓人,其实就是和MySQL对话的"普通话"。
你跟MySQL说:"给我查出所有技术部的员工",它就会把数据查出来。就这么简单。
SQL分四大类,我给你编了个口诀:"定结构、操数据、控权限、管事务"。

DDL:定结构
干啥的?创建数据库、创建表、修改表结构、删除表。
就像Excel里新建文件、新建Sheet、添加列、删除Sheet。
关键词:CREATE(创建)、ALTER(修改)、DROP(删除)、TRUNCATE(清空)
记忆技巧:DDL是"装修工",只动房子框架,不动里面的家具(数据)。
DML:操数据
干啥的?增删改查数据。
就像Excel里输入数据、修改数据、删除数据、筛选数据。
关键词:INSERT(插入)、SELECT(查询)、UPDATE(修改)、DELETE(删除)
记忆技巧:DML是"搬运工",只搬家具(数据),不动房子(结构)。这是你平时用得最多的!
DCL:控权限
干啥的?控制谁能看数据、谁能改数据。
就像Excel里设置文件密码、分配编辑/只读权限。
关键词:GRANT(授予权限)、REVOKE(撤销权限)
记忆技巧:DCL是"保安",管理谁能进、能干啥。
TCL:管事务
干啥的?管理事务,保证一批操作要么全成功,要么全失败。
就像Excel里保存文件(确认修改)或放弃修改。
关键词:COMMIT(提交)、ROLLBACK(回滚)
记忆技巧:TCL是"质检员",保证操作的完整性。
五、MySQL的身世:开源、免费、大厂都在用
顺便说说MySQL的"出身",挺有意思的。
MySQL是1996年诞生的,比很多程序员年纪都大。创始人叫Michael Widenius,大家都叫他Monty。
后来Sun公司把MySQL收购了,Sun又被Oracle收购了,所以现在MySQL属于Oracle。不过别担心,社区版还是免费开源的,个人用、商业用都不要钱。
它的Logo是只海豚,叫"Sakila",这名字还是从用户命名竞赛里选出来的,源自斯威士兰方言的女性名字。
为啥选MySQL?
免费: 开源免费,不花一分钱。
快: 读写速度快,高并发场景也扛得住。
轻量: 安装包就几百MB,部署简单,不像Oracle动不动几个G。
生态好: 各种工具、框架都支持MySQL,Navicat、phpMyAdmin这些工具用起来很方便。
大厂认可: 阿里、腾讯、美团、字节这些公司都在用MySQL。说明靠谱。
而且MySQL是全球最流行的开源数据库,DB-Engines排名常年前二。学会MySQL,找工作都加分。
六、今天讲了啥?快速回顾
一句话总结
MySQL就是Excel的进化版,为多人协作、海量数据、高性能而生。
核心概念
- 数据库 = Excel文件
- 表 = Sheet工作表
- 字段 = 列
- 记录 = 行
MySQL的三板斧
- 锁+事务:让几千人一起改数据也不乱
- 索引:千万行数据0.01秒查出来
- 数据约束:脏数据从源头就挡住
SQL四大类
记住口诀:"定结构、操数据、控权限、管事务"
- DDL定结构:CREATE、ALTER、DROP
- DML操数据:INSERT、SELECT、UPDATE、DELETE(最常用)
- DCL控权限:GRANT、REVOKE
- TCL管事务:COMMIT、ROLLBACK
Excel vs MySQL本质区别
- 操作方式: Excel用鼠标点点点,MySQL写SQL命令。虽然刚开始不习惯,但一条SQL能处理百万条数据,效率高多了
- 数据规范: Excel啥都能填,靠人自觉;MySQL严格限制类型,填错就报错,数据质量有保障
- 性能差距: Excel超过5万行就卡,MySQL千万行无压力。查询速度差几百倍
七、常见问题
学MySQL要懂编程吗?
不需要。SQL更像"说话",不像"编程"。会用Excel就能学会。
MySQL和SQL Server、Oracle啥区别?
- MySQL:开源免费,轻量,互联网公司爱用
- SQL Server:微软的,收费,Windows生态
- Oracle:功能最强,收费贵,大企业用
学MySQL有啥用?
网站开发、数据分析、企业系统开发都要用。而且找工作面试经常考,学会了加分。
学完能达到啥水平?
能独立设计数据库,能优化慢查询,能搭主从架构。达到初中级开发水平,应付大部分面试没问题。
八、作业:拿你手上的Excel练练手
光看不练假把式。你现在就找一个工作或学习中用的Excel文件,按照下面的步骤分析一下:
第一步:找对应关系
- 这个Excel文件对应MySQL的啥?(数据库)
- 里面的Sheet对应啥?(表)
- 列名对应啥?(字段)
- 每一行数据对应啥?(记录)
第二步:找痛点
想想你用这个Excel的时候遇到过哪些问题,至少列出3个。然后想想MySQL的哪个特性能解决这些问题。
第三步:画结构
画出这个Excel转换成MySQL后长啥样:
- 数据库叫啥名?
- 里面有几个表?
- 每个表有哪些字段?
- 哪个字段适合做主键(唯一标识)?
参考例子
比如你有个"学生成绩管理.xlsx":
原Excel:
- Sheet1"学生信息":学号、姓名、性别、班级
- Sheet2"考试成绩":学号、科目、分数、考试日期
转成MySQL:
- 数据库名:school_db
- 表1:student(学号id、姓名name、性别gender、班级class)
- 表2:score(学号student_id、科目subject、分数score、考试日期exam_date)
- 主键:student表用"学号",score表用"学号+科目+考试日期"组合
痛点:
- 多个老师同时录成绩会冲突 → MySQL并发控制解决
- 学生多了Excel很慢 → MySQL索引加速
- 容易误删数据 → MySQL权限管理+备份恢复
九、下一讲预告
今天咱们把MySQL的基本概念搞清楚了。下一讲就要动真格的了:亲手搭建MySQL环境,创建第一个数据库和表。
第2讲:环境搭建与基础操作实战
下一讲会讲这些:
- Windows/Mac/Linux怎么装MySQL(避坑指南)
- 命令行和Navicat工具怎么用
- 手把手教你创建第一个数据库和表
- DDL语句实战:CREATE、ALTER、DROP
- 遇到问题怎么办:端口占用、密码忘了、字符集乱码
建议你提前准备:
- 可以先试着装一下MySQL,遇到问题也没关系,下一讲会讲
- 找一个真实的Excel文件,准备转换成MySQL表
- 完成今天的作业,带着问题进入下一讲
下一讲见!咱们动手搭环境、写SQL!