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

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

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

姓名: ____________________   日期: ____________

1.简单

哪条语句删除整个表,包括其结构?

  1. ADELETE FROM
  2. BREMOVE TABLE
  3. CDROP TABLE
  4. DTRUNCATE ROWS
2.简单

CREATE、ALTER 和 DROP 等语句属于 SQL 的哪一部分?

  1. A事务控制语言(TCL)
  2. B数据控制语言(DCL)
  3. C数据定义语言(DDL)
  4. D数据操纵语言(DML)
3.简单

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

  1. A一对一
  2. B多对多
  3. C零对零
  4. D一对多
4.中等

哪个 ACID 特性意味着并发事务看不到彼此尚未完成的更改?

  1. A隔离性
  2. B可用性
  3. C原子性
  4. D持久性
5.中等

第一范式(1NF)要求:

  1. A没有外键
  2. B每列都包含原子值,且没有重复组
  3. C每个表恰好只有一列
  4. D每个非键列都依赖于整个键,且只依赖于键
6.中等

为什么一个表只能有一个聚集索引?

  1. A聚集索引只能建在主键上
  2. B行在物理上只能按一种顺序存储
  3. CSQL 标准禁止一个表上有多个索引
  4. D聚集索引占用太多内存
7.困难

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

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

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

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

答案

  1. 1. C · DROP TABLE
  2. 2. C · 数据定义语言(DDL)
  3. 3. D · 一对多
  4. 4. A · 隔离性
  5. 5. B · 每列都包含原子值,且没有重复组
  6. 6. B · 行在物理上只能按一种顺序存储
  7. 7. A · 对列应用函数会妨碍简单的索引范围查找
  8. 8. D · 引用外层查询的列,并针对外层的每一行进行求值的子查询

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