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

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

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

姓名: ____________________   日期: ____________

1.简单

一个客户可以下很多订单,但每个订单只属于一个客户。这是哪种联系?

  1. A一对多
  2. B一对一
  3. C多对多
  4. D零对零
2.简单

GROUP BY 在查询中起什么作用?

  1. A按公共列连接两个表
  2. B按字母顺序对结果行排序
  3. C删除含有 NULL 值的行
  4. D把具有相同值的行放入同一组,从而按组计算聚合
3.简单

哪条语句用于从表中删除行?

  1. ADELETE
  2. BDROP
  3. CTRUNCATE COLUMN
  4. DREMOVE
4.中等

某列包含值 10、20 和 NULL。AVG(col) 返回什么?

  1. A15
  2. B30
  3. CNULL
  4. D10
5.中等

哪个查询返回每个客户的订单数量?

  1. ASELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  2. BSELECT DISTINCT COUNT(*) FROM orders
  3. CSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  4. DSELECT customer_id FROM orders WHERE COUNT(*) > 0
6.中等

哪个查询返回 customers 表中不同城市的数量?

  1. ASELECT COUNT(DISTINCT city) FROM customers
  2. BSELECT DISTINCT COUNT(city) FROM customers
  3. CSELECT SUM(DISTINCT city) FROM customers
  4. DSELECT COUNT(city) FROM customers GROUP BY city
7.困难

为什么许多 DBMS 使用严格两阶段锁,把排他锁一直持有到提交?

  1. A它允许事务安全地读取脏数据
  2. B它能防止级联中止,因为没有人能读到未提交的写入
  3. C它免去了事务日志
  4. D它使死锁不可能发生
8.困难

EXPLAIN(或 PostgreSQL 中的 EXPLAIN ANALYZE)对一个查询显示什么?

  1. A仅以关系代数表示法改写的查询
  2. B运行过该查询的用户列表
  3. C优化器选择的执行计划,例如扫描方式和连接方法
  4. D查询中每个 SQL 关键字的含义

答案

  1. 1. A · 一对多
  2. 2. D · 把具有相同值的行放入同一组,从而按组计算聚合
  3. 3. A · DELETE
  4. 4. A · 15
  5. 5. C · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  6. 6. A · SELECT COUNT(DISTINCT city) FROM customers
  7. 7. B · 它能防止级联中止,因为没有人能读到未提交的写入
  8. 8. C · 优化器选择的执行计划,例如扫描方式和连接方法

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