GROUP BY 的作用是什么?
计算机原理 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
按 grade 分组,算出每个年级 age 的平均值。
把借书人信息重复写在每条借书记录里,有什么坏处?
把"学生信息"和"借书记录"分开存,好处是什么?
借书表里要放什么,才能找到借书的是哪个学生?
用外键代替重复抄写信息,最大的好处是什么?
JOIN 是用来做什么的?
内连接会保留"对不上号"的记录吗?
ON 后面写的是什么?
书的目录为什么能帮你更快找到内容?
参考答案(家长):SELECT grade, AVG(age) FROM students GROUP BY grade;
参考答案(家长):把记录按某列的值分成若干组,便于对每组分别统计。
参考答案(家长):信息不重复,改一处即可,省空间也更不易出错。
参考答案(家长):信息冗余、占空间,修改时要改很多处,还容易前后不一致。
参考答案(家长):避免重复、保持一致,只需在一处维护信息。
参考答案(家长):放学生的编号(学生表的主键),作为外键。
参考答案(家长):不会,只保留两边都能匹配上的记录。
参考答案(家长):把多张相关的表按关联字段拼接在一起查询。
参考答案(家长):目录把内容和页码整理好,可直接跳到位置,不用逐页翻。
参考答案(家长):两张表配对的条件(哪两个字段相等),通常是外键等于主键。
给"姓名"字段建索引,能帮到哪种查询?
为什么不给每个字段都建索引?
举一个"要么全做、要么全不做"的日常例子。
转账只做了"扣钱"没做"加钱",会怎样?为什么要放进一个事务?
说出"原子性"保证的是什么。
为什么"都看到还剩 1 张"却卖出了两张?
"锁"在这里起了什么作用?
数据"重复存放"最容易带来什么麻烦?
键值型数据库取数据靠什么?
为什么数据库要把数据写到硬盘,而不是只放内存里?
参考答案(家长):索引占空间,且增删改数据时要维护索引,过多会拖慢写入。
参考答案(家长):按姓名查找的查询(如 WHERE name = ...)会快很多。
参考答案(家长):钱会平白丢失;放进事务能保证两步要么都成、要么都不做。
参考答案(家长):如网购下单要同时扣款和记订单(合理即可)。
参考答案(家长):两人几乎同时读到还剩 1,又几乎同时下单,各自以为买到了。
参考答案(家长):一个事务里的操作要么全部完成,要么全部不做,不会只做一半。
参考答案(家长):修改时容易漏改,导致同一信息前后不一致。
参考答案(家长):让同一份数据同一时刻只被一个操作修改,避免互相干扰。
参考答案(家长):内存断电会丢数据,写到硬盘才能长期保存、断电不丢。
参考答案(家长):靠"键"(钥匙),用键直接取到对应的值。
你觉得 price = 5 * 2 这行源代码想让电脑做什么?
把"写代码→能运行"想象成做菜,你觉得中间至少要几步?说一步即可。
为什么人不直接用 0 和 1 写程序?
编译完成后运行程序,还需要原来的源代码吗?
解释执行时,如果第 5 行有错,前面 4 行会先跑吗?
"现场口译"更像编译还是解释?
你在反复调试、频繁改代码,哪种方式更省事?
为什么值得把"反复执行"的代码专门编译一下?
把"拆成词、拼成树、检查意思、生成指令"排成先后顺序。
想让同一个语言支持一种新芯片,主要改前端还是后端?
参考答案(家长):开放答案,如"先看懂每个字/先检查有没有写错/再动手做"都对。
参考答案(家长):算出 5×2=10,把 10 记到名叫 price 的盒子里。
参考答案(家长):不需要,运行的是翻译好的可执行文件。
参考答案(家长):太难写、太容易错、也看不懂,用接近人话的源代码更方便。
参考答案(家长):解释。
参考答案(家长):通常会,因为是读一句做一句,跑到第 5 行才发现错。
参考答案(家长):因为它跑很多次,编译一次就能让后面每次都更快,很划算。
参考答案(家长):解释,改完马上能跑,不用每次重新编译。
参考答案(家长):后端,因为要生成那种芯片的指令。
参考答案(家长):拆成词 → 拼成树 → 检查意思 → 生成指令。