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

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

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

姓名: ____________________   日期: ____________

1.简单

哪种约束确保某列永远不能留空(NULL)?

  1. ACHECK NULL
  2. BDEFAULT
  3. CNOT NULL
  4. DUNIQUE
2.简单

在 WHERE 子句中,哪个运算符用于简单的文本模式匹配?

  1. ACONTAINS
  2. BMATCH
  3. CSIMILAR
  4. DLIKE
3.简单

哪条语句向已有的表中添加新列?

  1. AUPDATE TABLE
  2. BINSERT COLUMN
  3. CCREATE COLUMN
  4. DALTER TABLE
4.中等

学生可以选修多门课程,课程也有多名学生。在表中如何对此建模?

  1. A在 students 表中加一个指向 courses 的外键列 course_id
  2. B用一个联结表,其中保存指向 students 和 courses 的外键
  3. C把课程 id 列表存储在一列中
  4. D把 students 和 courses 合并成一个表
5.中等

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

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

ACID 中的 "A" 代表什么?

  1. A原子性(Atomicity)
  2. B可用性(Availability)
  3. C准确性(Accuracy)
  4. D聚合性(Aggregation)
7.困难

要在深度未知的组织树中找出某位经理下属的所有员工,哪种 SQL 功能最合适?

  1. A对 manager_id 进行 GROUP BY
  2. B递归公用表表达式(WITH RECURSIVE)
  3. C在 manager_id 上加 UNIQUE 约束
  4. D基于 manager_id 对 employees 表做一次自连接
8.困难

哪种隔离级别可以防止脏读,但仍允许不可重复读?

  1. A可重复读(Repeatable read)
  2. B可串行化(Serializable)
  3. C读已提交(Read committed)
  4. D读未提交(Read uncommitted)

答案

  1. 1. C · NOT NULL
  2. 2. D · LIKE
  3. 3. D · ALTER TABLE
  4. 4. B · 用一个联结表,其中保存指向 students 和 courses 的外键
  5. 5. B · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  6. 6. A · 原子性(Atomicity)
  7. 7. B · 递归公用表表达式(WITH RECURSIVE)
  8. 8. C · 读已提交(Read committed)

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