第1讲:入门篇——把MySQL当成Excel来学

第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的三板斧

  1. 锁+事务:让几千人一起改数据也不乱
  2. 索引:千万行数据0.01秒查出来
  3. 数据约束:脏数据从源头就挡住

SQL四大类

记住口诀:"定结构、操数据、控权限、管事务"

  1. DDL定结构:CREATE、ALTER、DROP
  2. DML操数据:INSERT、SELECT、UPDATE、DELETE(最常用)
  3. DCL控权限:GRANT、REVOKE
  4. 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表用"学号+科目+考试日期"组合

痛点:

  1. 多个老师同时录成绩会冲突 → MySQL并发控制解决
  2. 学生多了Excel很慢 → MySQL索引加速
  3. 容易误删数据 → MySQL权限管理+备份恢复

九、下一讲预告

今天咱们把MySQL的基本概念搞清楚了。下一讲就要动真格的了:亲手搭建MySQL环境,创建第一个数据库和表。

第2讲:环境搭建与基础操作实战

下一讲会讲这些:

  • Windows/Mac/Linux怎么装MySQL(避坑指南)
  • 命令行和Navicat工具怎么用
  • 手把手教你创建第一个数据库和表
  • DDL语句实战:CREATE、ALTER、DROP
  • 遇到问题怎么办:端口占用、密码忘了、字符集乱码

建议你提前准备:

  • 可以先试着装一下MySQL,遇到问题也没关系,下一讲会讲
  • 找一个真实的Excel文件,准备转换成MySQL表
  • 完成今天的作业,带着问题进入下一讲

下一讲见!咱们动手搭环境、写SQL!

相关推荐
用户68545375977699 分钟前
同步成本换并行度:多线程、协程、分片、MapReduce 怎么选才不踩坑
后端
javaTodo16 分钟前
Claude Code 记忆机制详解:从 CLAUDE.md 到 Auto Memory,六层体系全拆解
后端
LSTM9737 分钟前
使用 C# 和 Spire.PDF 从 HTML 模板生成 PDF 的实用指南
后端
JaguarJack1 小时前
为什么 PHP 闭包要加 static?
后端·php·服务端
BingoGo1 小时前
为什么 PHP 闭包要加 static?
后端
是糖糖啊1 小时前
OpenClaw 从零到一实战指南(飞书接入)
前端·人工智能·后端
百度Geek说1 小时前
基于Spark的配置化离线反作弊系统
后端
Java编程爱好者2 小时前
虚拟线程深度解析:轻量并发编程的未来趋势
后端
苏三说技术2 小时前
Spring AI 和 LangChain4j ,哪个更好?
后端