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

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

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

姓名: ____________________   日期: ____________

1.简单

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

  1. ADROP TABLE
  2. BREMOVE TABLE
  3. CTRUNCATE ROWS
  4. DDELETE FROM
2.简单

UNION 对两个 SELECT 查询的结果做什么?

  1. A只保留出现在第一个查询中而不在第二个查询中的行
  2. B按某个键把它们左右并排连接
  3. C把它们合并为一个结果并去除重复行
  4. D只保留同时出现在两者中的行
3.简单

WHERE price BETWEEN 10 AND 20 会选出哪些行?

  1. A只有 price 等于 10 或 20 的行
  2. Bprice 在 10 到 20 之间的行,包括 10 和 20
  3. Cprice 在 10 到 20 范围之外的行
  4. Dprice 大于 10 且小于 20 的行,不包括 10 和 20
4.中等

ROLLBACK TO SAVEPOINT s1 的作用是什么?

  1. A结束事务并提交所有内容
  2. B撤销保存点 s1 之后所做的更改,事务保持打开
  3. C删除该保存点以及此后更改过的所有表
  4. D从头撤销整个事务
5.中等

一个表中有些行的 col 为 NULL。WHERE col = NULL 返回哪些行?

  1. A不返回任何行,因为比较结果是未知
  2. B返回表中的所有行
  3. C只返回 col 为 NULL 的行,与 IS NULL 相同
  4. D在每种数据库中都报错
6.中等

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

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

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

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

把 R 分解为 R1 和 R2 在什么情况下保证是无损的?

  1. AR 的每个属性都同时出现在 R1 和 R2 中时
  2. BR1 和 R2 的列数相同时
  3. CR1 和 R2 的公共属性构成 R1 或 R2 的超键时
  4. DR1 和 R2 没有公共属性时

答案

  1. 1. A · DROP TABLE
  2. 2. C · 把它们合并为一个结果并去除重复行
  3. 3. B · price 在 10 到 20 之间的行,包括 10 和 20
  4. 4. B · 撤销保存点 s1 之后所做的更改,事务保持打开
  5. 5. A · 不返回任何行,因为比较结果是未知
  6. 6. C · 用一个联结表,其中保存指向 students 和 courses 的外键
  7. 7. D · 读已提交(Read committed)
  8. 8. C · R1 和 R2 的公共属性构成 R1 或 R2 的超键时

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