1.简单
哪条 SQL 语句向表中添加新行?
- ASELECT
- BALTER
- CUPDATE
- DINSERT
2.简单
什么是复合键?
- A存储在单独表中的键
- B允许重复值的键
- C由两列或更多列组成的键
- D由数据库生成的键
3.简单
CROSS JOIN 返回什么?
- A只有不匹配的行
- B两个表中行的所有组合
- C只有第一个表的行
- D只有在共享键列上匹配的行
4.中等
在关系代数中,选择运算符(σ)对应于哪个 SQL 子句?
- AORDER BY
- BSELECT 列表
- CGROUP BY
- DWHERE
5.中等
学生可以选修多门课程,课程也有多名学生。在表中如何对此建模?
- A把课程 id 列表存储在一列中
- B用一个联结表,其中保存指向 students 和 courses 的外键
- C在 students 表中加一个指向 courses 的外键列 course_id
- D把 students 和 courses 合并成一个表
6.中等
哪个 ACID 特性保证已提交的更改在系统崩溃后仍然存在?
- A隔离性
- B一致性
- C持久性
- D原子性
7.困难
哪种隔离级别可以防止脏读,但仍允许不可重复读?
- A可重复读(Repeatable read)
- B读已提交(Read committed)
- C读未提交(Read uncommitted)
- D可串行化(Serializable)
8.困难
一个应用执行 UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7,如果没有行被更新就报告冲突。这是哪种技术?
- A乐观并发控制
- B预写日志
- C数据库分片
- D带行锁的严格两阶段锁
答案
- 1. D · INSERT
- 2. C · 由两列或更多列组成的键
- 3. B · 两个表中行的所有组合
- 4. D · WHERE
- 5. B · 用一个联结表,其中保存指向 students 和 courses 的外键
- 6. C · 持久性
- 7. B · 读已提交(Read committed)
- 8. A · 乐观并发控制
完整分步解答:请在 examproblems.com 上练习本主题。