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

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

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

姓名: ____________________   日期: ____________

1.简单

哪条 SQL 语句向表中添加新行?

  1. AALTER
  2. BSELECT
  3. CINSERT
  4. DUPDATE
2.简单

哪个关键字在查询中给列或表一个临时的别名?

  1. ARENAME
  2. BNAME
  3. CAS
  4. DALIAS
3.简单

哪个聚合函数用于统计行数?

  1. AMAX
  2. BCOUNT
  3. CSUM
  4. DAVG
4.中等

一个表在每一行订单上都存储了客户地址。只修改其中一行的地址而不修改其他行,这是哪种情况的例子?

  1. A更新异常
  2. B插入异常
  3. C删除异常
  4. D幻读
5.中等

什么是脏读?

  1. A读取另一个尚未提交的事务所写入的数据
  2. B不带 WHERE 子句读取数据
  3. C两次读取同一行并得到相同的值
  4. D从损坏的磁盘读取数据
6.中等

哪个查询列出从未下过订单的客户?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
  2. BSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  3. CSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
7.困难

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

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

为什么在生产查询中使用 NATURAL JOIN 被认为有风险?

  1. A它在所有同名列上连接,因此新增一列可能悄无声息地改变结果
  2. B它忽略主键和外键,只保留 NULL 行
  3. C没有任何数据库支持它
  4. D它总是返回笛卡尔积

答案

  1. 1. C · INSERT
  2. 2. C · AS
  3. 3. B · COUNT
  4. 4. A · 更新异常
  5. 5. A · 读取另一个尚未提交的事务所写入的数据
  6. 6. B · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  7. 7. B · 优化器选择的执行计划,例如扫描方式和连接方法
  8. 8. A · 它在所有同名列上连接,因此新增一列可能悄无声息地改变结果

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