数据库与 SQL练习卷(附答案)

免费可打印的数据库与 SQL练习卷:8 道题,从简单到考试水平,附答案。可打印或另存为 PDF。

教师请注意: 可免费打印、复印并在课堂上使用。每份新练习题都有新的数值和独立的答案。欢迎在课程页面添加指向 ExamProblems 的链接。

姓名: ____________________   日期: ____________

1.简单

WHERE country IN ('NL', 'BE', 'DE') 的作用是什么?

  1. A保留 country 等于列表中任一值的行
  2. B保留 country 不在列表中的行
  3. C保留 country 值同时包含这三个代码的行
  4. D按列表的顺序对行排序
2.简单

哪种约束确保某列永远不能留空(NULL)?

  1. ADEFAULT
  2. BNOT NULL
  3. CUNIQUE
  4. DCHECK NULL
3.简单

WHERE price BETWEEN 10 AND 20 会选出哪些行?

  1. Aprice 大于 10 且小于 20 的行,不包括 10 和 20
  2. B只有 price 等于 10 或 20 的行
  3. Cprice 在 10 到 20 之间的行,包括 10 和 20
  4. Dprice 在 10 到 20 范围之外的行
4.中等

为什么要在列上创建索引?

  1. A为了节省磁盘空间
  2. B为了加快这些列上的查找和连接
  3. C为了防止出现 NULL 值
  4. D为了加快这些列上的插入和更新
5.中等

关于 HAVING,下列哪项说法正确?

  1. A它在 SELECT 语句中必须写在 WHERE 之前
  2. B它不能与 GROUP BY 一起使用
  3. C它可以使用聚合函数来过滤分组
  4. D它用于对结果排序
6.中等

一个表中有些行的 col 为 NULL。WHERE col = NULL 返回哪些行?

  1. A在每种数据库中都报错
  2. B返回表中的所有行
  3. C只返回 col 为 NULL 的行,与 IS NULL 相同
  4. D不返回任何行,因为比较结果是未知
7.困难

对于两个没有可用索引的大表之间的等值连接,优化器通常选择哪种连接算法?

  1. A哈希连接
  2. B主键上的位图连接
  3. C带索引查找的嵌套循环连接
  4. D交叉连接
8.困难

在多版本并发控制(MVCC)下,读取者如何避免阻塞写入者?

  1. A只要有读取者在活动,就不允许写入
  2. B读取者看到已提交行版本的一致快照,而写入者创建新版本
  3. C读取者直接读取未提交的数据
  4. D读取者总是等到所有写入者都提交

答案

  1. 1. A · 保留 country 等于列表中任一值的行
  2. 2. B · NOT NULL
  3. 3. C · price 在 10 到 20 之间的行,包括 10 和 20
  4. 4. B · 为了加快这些列上的查找和连接
  5. 5. C · 它可以使用聚合函数来过滤分组
  6. 6. D · 不返回任何行,因为比较结果是未知
  7. 7. A · 哈希连接
  8. 8. B · 读取者看到已提交行版本的一致快照,而写入者创建新版本

完整分步解答:请在 examproblems.com 上练习本主题。