1.简单
WHERE country IN ('NL', 'BE', 'DE') 的作用是什么?
- A保留 country 等于列表中任一值的行
- B保留 country 不在列表中的行
- C保留 country 值同时包含这三个代码的行
- D按列表的顺序对行排序
2.简单
哪种约束确保某列永远不能留空(NULL)?
- ADEFAULT
- BNOT NULL
- CUNIQUE
- DCHECK NULL
3.简单
WHERE price BETWEEN 10 AND 20 会选出哪些行?
- Aprice 大于 10 且小于 20 的行,不包括 10 和 20
- B只有 price 等于 10 或 20 的行
- Cprice 在 10 到 20 之间的行,包括 10 和 20
- Dprice 在 10 到 20 范围之外的行
4.中等
为什么要在列上创建索引?
- A为了节省磁盘空间
- B为了加快这些列上的查找和连接
- C为了防止出现 NULL 值
- D为了加快这些列上的插入和更新
5.中等
关于 HAVING,下列哪项说法正确?
- A它在 SELECT 语句中必须写在 WHERE 之前
- B它不能与 GROUP BY 一起使用
- C它可以使用聚合函数来过滤分组
- D它用于对结果排序
6.中等
一个表中有些行的 col 为 NULL。WHERE col = NULL 返回哪些行?
- A在每种数据库中都报错
- B返回表中的所有行
- C只返回 col 为 NULL 的行,与 IS NULL 相同
- D不返回任何行,因为比较结果是未知
7.困难
对于两个没有可用索引的大表之间的等值连接,优化器通常选择哪种连接算法?
- A哈希连接
- B主键上的位图连接
- C带索引查找的嵌套循环连接
- D交叉连接
8.困难
在多版本并发控制(MVCC)下,读取者如何避免阻塞写入者?
- A只要有读取者在活动,就不允许写入
- B读取者看到已提交行版本的一致快照,而写入者创建新版本
- C读取者直接读取未提交的数据
- D读取者总是等到所有写入者都提交
答案
- 1. A · 保留 country 等于列表中任一值的行
- 2. B · NOT NULL
- 3. C · price 在 10 到 20 之间的行,包括 10 和 20
- 4. B · 为了加快这些列上的查找和连接
- 5. C · 它可以使用聚合函数来过滤分组
- 6. D · 不返回任何行,因为比较结果是未知
- 7. A · 哈希连接
- 8. B · 读取者看到已提交行版本的一致快照,而写入者创建新版本
完整分步解答:请在 examproblems.com 上练习本主题。