首页课程小红花墙

计算机原理 · 小纸条

选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。

第 1 章30第 2 章30第 3 章30第 4 章30第 5 章30第 6 章30第 7 章30第 8 章30第 9 章30第 10 章30第 11 章30第 12 章30第 13 章30第 14 章30第 15 章30第 16 章30第 17 章30第 18 章30第 19 章30第 20 章30第 21 章30第 22 章30第 23 章30第 24 章30第 25 章30第 26 章30第 27 章30第 28 章30第 29 章30第 30 章30第 31 章30第 32 章30第 33 章30第 34 章30第 35 章30第 36 章30第 37 章15
只印题目
第 1 页 · 正面(题目)
1分组 GROUP BY

GROUP BY 的作用是什么?

2分组再统计

按 grade 分组,算出每个年级 age 的平均值。

3一张表不够

把借书人信息重复写在每条借书记录里,有什么坏处?

4拆成两张表

把"学生信息"和"借书记录"分开存,好处是什么?

5外键连起来

借书表里要放什么,才能找到借书的是哪个学生?

6外键像书签

用外键代替重复抄写信息,最大的好处是什么?

7JOIN 拼起来

JOIN 是用来做什么的?

8内连接直觉

内连接会保留"对不上号"的记录吗?

9按外键连

ON 后面写的是什么?

10索引像目录

书的目录为什么能帮你更快找到内容?

第 1 页 · 背面(答案)

参考答案(家长):SELECT grade, AVG(age) FROM students GROUP BY grade;

参考答案(家长):把记录按某列的值分成若干组,便于对每组分别统计。

参考答案(家长):信息不重复,改一处即可,省空间也更不易出错。

参考答案(家长):信息冗余、占空间,修改时要改很多处,还容易前后不一致。

参考答案(家长):避免重复、保持一致,只需在一处维护信息。

参考答案(家长):放学生的编号(学生表的主键),作为外键。

参考答案(家长):不会,只保留两边都能匹配上的记录。

参考答案(家长):把多张相关的表按关联字段拼接在一起查询。

参考答案(家长):目录把内容和页码整理好,可直接跳到位置,不用逐页翻。

参考答案(家长):两张表配对的条件(哪两个字段相等),通常是外键等于主键。

第 2 页 · 正面(题目)
11为什么索引快

给"姓名"字段建索引,能帮到哪种查询?

12索引不是越多越好

为什么不给每个字段都建索引?

13事务是一整件事

举一个"要么全做、要么全不做"的日常例子。

14转账要么都成

转账只做了"扣钱"没做"加钱",会怎样?为什么要放进一个事务?

15ACID 四保证

说出"原子性"保证的是什么。

16两人同时改

为什么"都看到还剩 1 张"却卖出了两张?

17加锁排队

"锁"在这里起了什么作用?

18为什么要拆表

数据"重复存放"最容易带来什么麻烦?

19另一种数据库

键值型数据库取数据靠什么?

20数据存到硬盘

为什么数据库要把数据写到硬盘,而不是只放内存里?

第 2 页 · 背面(答案)

参考答案(家长):索引占空间,且增删改数据时要维护索引,过多会拖慢写入。

参考答案(家长):按姓名查找的查询(如 WHERE name = ...)会快很多。

参考答案(家长):钱会平白丢失;放进事务能保证两步要么都成、要么都不做。

参考答案(家长):如网购下单要同时扣款和记订单(合理即可)。

参考答案(家长):两人几乎同时读到还剩 1,又几乎同时下单,各自以为买到了。

参考答案(家长):一个事务里的操作要么全部完成,要么全部不做,不会只做一半。

参考答案(家长):修改时容易漏改,导致同一信息前后不一致。

参考答案(家长):让同一份数据同一时刻只被一个操作修改,避免互相干扰。

参考答案(家长):内存断电会丢数据,写到硬盘才能长期保存、断电不丢。

参考答案(家长):靠"键"(钥匙),用键直接取到对应的值。

第 3 页 · 正面(题目)
21什么是源代码

你觉得 price = 5 * 2 这行源代码想让电脑做什么?

22从代码到程序

把"写代码→能运行"想象成做菜,你觉得中间至少要几步?说一步即可。

23机器只懂 0 和 1

为什么人不直接用 0 和 1 写程序?

24编译是什么

编译完成后运行程序,还需要原来的源代码吗?

25解释是什么

解释执行时,如果第 5 行有错,前面 4 行会先跑吗?

26编译还是解释

"现场口译"更像编译还是解释?

27各有什么长处

你在反复调试、频繁改代码,哪种方式更省事?

28边跑边编译

为什么值得把"反复执行"的代码专门编译一下?

29编译器的流水线

把"拆成词、拼成树、检查意思、生成指令"排成先后顺序。

30前端和后端

想让同一个语言支持一种新芯片,主要改前端还是后端?

第 3 页 · 背面(答案)

参考答案(家长):开放答案,如"先看懂每个字/先检查有没有写错/再动手做"都对。

参考答案(家长):算出 5×2=10,把 10 记到名叫 price 的盒子里。

参考答案(家长):不需要,运行的是翻译好的可执行文件。

参考答案(家长):太难写、太容易错、也看不懂,用接近人话的源代码更方便。

参考答案(家长):解释。

参考答案(家长):通常会,因为是读一句做一句,跑到第 5 行才发现错。

参考答案(家长):因为它跑很多次,编译一次就能让后面每次都更快,很划算。

参考答案(家长):解释,改完马上能跑,不用每次重新编译。

参考答案(家长):后端,因为要生成那种芯片的指令。

参考答案(家长):拆成词 → 拼成树 → 检查意思 → 生成指令。

op599 课程