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

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

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

姓名: ____________________   日期: ____________

1.简单

什么是代理键?

  1. A没有业务含义的人工标识符,例如自增 id
  2. B只在视图中使用的键
  3. C由电子邮件地址等真实数据构成的键
  4. D引用另一个表的键
2.简单

实体-联系(ER)图用于什么?

  1. A在设计数据库时为实体、实体的属性及其联系建模
  2. B测量数据库性能
  3. C列出数据库的用户
  4. D显示查询是如何执行的
3.简单

在 SQL 中 NULL 表示什么?

  1. A空字符串
  2. B数值列中的数字零
  3. C布尔值 false
  4. D缺失或未知的值
4.中等

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

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

SELECT name, CASE WHEN grade >= 5.5 THEN 'pass' ELSE 'fail' END FROM results 返回什么?

  1. A每个姓名以及根据成绩得到的标签 'pass' 或 'fail'
  2. B只返回及格的学生
  3. C报错,因为 SELECT 中不允许使用 CASE
  4. D及格和不及格的学生人数
6.中等

orders 表有 5 行,每行都引用一个已存在的客户。customers 表有 3 行。在 customer_id 上做 INNER JOIN 返回多少行?

  1. A3
  2. B8
  3. C5
  4. D15
7.困难

为什么在标准 SQL 中 SELECT dept, name, COUNT(*) FROM emp GROUP BY dept 是无效的?

  1. Adept 必须出现在聚合函数中
  2. Bname 既没有分组也没有聚合,因此每组没有唯一的值
  3. CCOUNT(*) 不能与 GROUP BY 一起使用
  4. DGROUP BY 必须列出表的所有列
8.困难

两名值班医生各自检查对方是否仍在值班,然后两人同时下班签退。快照隔离在这里仍可能允许哪种异常?

  1. A写偏斜(write skew)
  2. B同一事务内的不可重复读
  3. C脏读
  4. D脏写

答案

  1. 1. A · 没有业务含义的人工标识符,例如自增 id
  2. 2. A · 在设计数据库时为实体、实体的属性及其联系建模
  3. 3. D · 缺失或未知的值
  4. 4. B · 它可以使用聚合函数来过滤分组
  5. 5. A · 每个姓名以及根据成绩得到的标签 'pass' 或 'fail'
  6. 6. C · 5
  7. 7. B · name 既没有分组也没有聚合,因此每组没有唯一的值
  8. 8. A · 写偏斜(write skew)

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