乐于分享
好东西不私藏

数据库是什么?——Excel 的升级版

数据库是什么?——Excel 的升级版

作者:许灼灼

数据库是什么?——Excel 的升级版

一、课堂故事

上节课,小婉用类写了个 GradeManager(成绩管理系统)。班主任试运行了一下,连连点头:"嗯,能加学生、能排名、能算平均分,不错不错。"

可第二天,班主任又找来了:"诶?昨天的成绩呢?怎么全空了?我昨天录的张三李四呢?"

小婉一拍脑门——昨天晚上关了程序,内存里的 list 全没了,今天打开又是个空系统,得重新录一遍。

班主任摇摇头:"我要的是'关了也还在'的系统。你这系统,一关就没,跟没记一样。"

小婉委屈:"可我代码明明写对了呀……"

没错,代码是写对了。问题出在——数据放在了"内存"里,没放到"硬盘"上

二、概念解释

要搞懂这件事,先分清两个地方:

  • 内存:程序运行时临时歇脚的地方。快,但一关程序、一断电,里面的东西全没了。就像黑板上的字,擦了就没。
  • 硬盘:电脑里长期存东西的地方。关机、断电都在。就像笔记本,写上去就跑不了。

小婉的问题,就是成绩只写在了"黑板"(内存)上,没抄进"笔记本"(硬盘)。

那"数据库"是啥?

数据库(Database)= 一个专门用来存数据的地方,它把数据整整齐齐放在硬盘上,关了程序、关了机都还在,而且能让你"下命令"飞快查到想要的内容。

你可以把它理解成:Excel 的升级版档案室

三、拆开看

数据库里面到底装了啥?记住三件套:

  • 表(Table):一张大表,比如"学生成绩表"。一个数据库里可以有好多张表。
  • 字段(Field,也叫列):表格的每一列,是一类信息。比如"姓名""语文""数学"。
  • 记录(Record,也叫行):表格的每一行,是一条完整的数据。比如"张三,85,92"就是一条记录。

其实你早就见过这套结构了——就是 Excel!

那为啥不直接用 Excel,非要学数据库?三个理由:

  1. Excel 是人手翻,数据库是"下命令"
    你要"语文大于 90 的人",Excel 得自己筛;数据库你发一句话(以后学的 SELECT),它立马给你结果。
  2. Excel 几千行就卡,数据库几十万行也不慌
Excel 容易误改,数据库能上"锁",谁能动、谁不能动,清清楚楚。

不过别怕——咱们中职阶段用的 SQLite,连服务器都不用装,一个 .db 文件就搞定,双击都能带上走。这可比 MySQL 那种"得装个大家伙"的友好多了。

四、常见坑

坑 1:以为数据库 = Excel。

不对。Excel 是鼠标点的,数据库是"写命令操作"的。刚开始会有点不习惯,但习惯了你就回不去了。

坑 2:以为数据库很难,要装服务器。

SQLite 一个文件零配置,Python 自带 sqlite3 模块,import 就能用。别自己吓自己。

坑 3:以为"建了表就有数据"。

表就像空柜子,建好是空的,得往里"放东西"(插数据)才有内容。这事儿下节课讲。

坑 4:分不清"内存里的 list"和"数据库"。

这是小婉踩的坑。list 在内存里,关程序就没;.db 文件在硬盘上,关程序还在。一句话记住:list 是临时黑板,数据库是永久笔记本。

五、生活类比

把数据库想象成学校的档案室

  • 整间档案室 = 一个数据库
  • 档案室里的柜子 = 一张表(table)
  • 柜子里的格子 = 字段(field,姓名格、成绩格……)
  • 一份完整的档案袋 = 一条记录(record)

你今天把档案袋放进去,关上门走了。明天、下周、明年再来,档案袋还好好躺在柜子里——这就是"持久化",也是小婉那个系统最缺的东西。

而你之前用 list 存成绩,相当于把档案袋放在走廊上,风一吹(关程序)就没了。

六、练一练

1. 填空

数据库里一张表由许多 ______(行 / 记录)组成,每一行又包含固定的 ______(字段 / 列)。

2. 判断

用 list 存的成绩,关掉程序后还在。

(答案:错。list 在内存里,关程序就丢了,得存进数据库文件才永久。)

3. 想一想

你手机里的"通讯录",算不算一种数据库?

(提示:关机还在不在?能不能按名字搜?——算!它就是一个迷你数据库。)


下节课预告:光知道"档案室"长啥样不够,下节我们亲手"建一个柜子"——用 SQL 的 CREATE TABLE 建表,再用 INSERT 把第一条记录放进去。准备好,真正动手了!