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

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

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

姓名: ____________________   日期: ____________

1.简单

哪个关键字用于对查询结果排序?

  1. AORDER BY
  2. BARRANGE
  3. CGROUP BY
  4. DSORT
2.简单

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

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

在事务中,ROLLBACK 的作用是什么?

  1. A将事务的所有更改永久保存到磁盘
  2. B删除表
  3. C重复上一条语句
  4. D撤销自事务开始以来所做的更改
4.中等

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

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

在关系代数中,选择运算符(σ)对应于哪个 SQL 子句?

  1. AORDER BY
  2. BSELECT 列表
  3. CGROUP BY
  4. DWHERE
6.中等

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

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

为什么带有 WHERE YEAR(order_date) = 2025 的查询可能不会使用 order_date 上的索引?

  1. A索引永远不能用于日期
  2. BYEAR 不是合法的 SQL
  3. Corder_date 上的索引只用于 ORDER BY 子句,绝不用于 WHERE
  4. D对列应用函数会妨碍简单的索引范围查找
8.困难

相关子查询(correlated subquery)是指:

  1. A引用外层查询的列,并针对外层的每一行进行求值的子查询
  2. B只使用聚合函数的子查询
  3. C只在外层查询之前运行一次,并将结果缓存供每一行使用
  4. D通过外键连接两个表的子查询

答案

  1. 1. A · ORDER BY
  2. 2. A · 保留 country 等于列表中任一值的行
  3. 3. D · 撤销自事务开始以来所做的更改
  4. 4. D · 为了加快这些列上的查找和连接
  5. 5. D · WHERE
  6. 6. C · 它可以使用聚合函数来过滤分组
  7. 7. D · 对列应用函数会妨碍简单的索引范围查找
  8. 8. A · 引用外层查询的列,并针对外层的每一行进行求值的子查询

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