第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!

相关推荐
星光一影6 小时前
基于Jdk17+SpringBoot3AI智慧教育平台,告别低效学习,AI精准导学 + 新架构稳跑
java·学习·mysql
SimonKing6 小时前
Spring Boot全局异常处理的背后的故事
java·后端·程序员
骑着bug的coder6 小时前
线上503了?聊聊Feign熔断降级这点事
后端
初级程序员Kyle6 小时前
开始改变第六天 MySQL(1)
后端
MeowRain6 小时前
JVM分代回收
后端
程序员蜗牛6 小时前
拒绝重复造轮子!SpringBoot 内置的20个高效官方工具类详解
后端
白衣鸽子6 小时前
ListUtils:Java列表操作的瑞士军刀
后端·开源·设计
bcbnb6 小时前
Charles vs Fiddler vs Wireshark,哪款抓包工具最适合开发者?
后端
L.EscaRC6 小时前
【Rust编程】深入解析 Rust gRPC 框架:Tonic
后端·rpc·rust