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

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

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

姓名: ____________________   日期: ____________

1.简单

UNION ALL 与 UNION 有何不同?

  1. AUNION ALL 保留重复行
  2. BUNION ALL 只适用于一个表
  3. CUNION ALL 会对结果排序
  4. DUNION ALL 去除重复行
2.简单

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

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

CROSS JOIN 返回什么?

  1. A只有不匹配的行
  2. B只有第一个表的行
  3. C两个表中行的所有组合
  4. D只有在共享键列上匹配的行
4.中等

GRANT SELECT ON employees TO alice 的作用是什么?

  1. A允许用户 alice 读取 employees 表
  2. B让 alice 成为数据库的所有者
  3. C把 employees 表复制给 alice
  4. D允许 alice 更新和删除 employees 表中的行
5.中等

对于一行,WHERE EXISTS (subquery) 在什么情况下为真?

  1. A子查询返回一个大于零的数时
  2. B子查询至少返回一行时
  3. C子查询不返回 NULL 值时
  4. D子查询恰好返回一行时
6.中等

哪个 ACID 特性保证已提交的更改在系统崩溃后仍然存在?

  1. A原子性
  2. B持久性
  3. C一致性
  4. D隔离性
7.困难

在 (last_name, first_name) 上有一个复合索引。哪个条件能最有效地利用它?

  1. AWHERE first_name = 'Eva'
  2. BWHERE last_name = 'Jansen'
  3. CWHERE first_name LIKE '%a'
  4. DWHERE UPPER(first_name) = 'EVA'
8.困难

两阶段锁(2PL)能保证:

  1. A事务永远不需要等待
  2. B不需要任何锁
  3. C永远不会发生死锁
  4. D冲突可串行化的调度

答案

  1. 1. A · UNION ALL 保留重复行
  2. 2. D · price 在 10 到 20 之间的行,包括 10 和 20
  3. 3. C · 两个表中行的所有组合
  4. 4. A · 允许用户 alice 读取 employees 表
  5. 5. B · 子查询至少返回一行时
  6. 6. B · 持久性
  7. 7. B · WHERE last_name = 'Jansen'
  8. 8. D · 冲突可串行化的调度

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