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

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

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

姓名: ____________________   日期: ____________

1.简单

实体-联系(ER)图用于什么?

  1. A列出数据库的用户
  2. B在设计数据库时为实体、实体的属性及其联系建模
  3. C显示查询是如何执行的
  4. D测量数据库性能
2.简单

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

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

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

  1. AAVG
  2. BCOUNT
  3. CMAX
  4. DSUM
4.中等

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

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

哪条语句删除表中的所有行、保留其结构,并且不能带 WHERE 子句?

  1. ADROP TABLE
  2. B带 WHERE 子句的 DELETE FROM
  3. CALTER TABLE
  4. DTRUNCATE TABLE
6.中等

第三范式(3NF)消除了:

  1. A复合键
  2. B建立在不属于任何键的列上的冗余索引
  3. C原子值
  4. D非键属性之间的传递依赖
7.困难

与 3NF 相比,把表分解为 BCNF 的一个已知缺点是什么?

  1. ABCNF 表不能有主键
  2. BBCNF 比 3NF 允许更多冗余
  3. C分解后再连接回来总会丢失数据
  4. D某些函数依赖可能无法再在单个表中检查
8.困难

哪个窗口函数在每个分区内为行分配 1、2、3……且不出现并列?

  1. ARANK()
  2. BROW_NUMBER()
  3. CCOUNT()
  4. DDENSE_RANK()

答案

  1. 1. B · 在设计数据库时为实体、实体的属性及其联系建模
  2. 2. C · 把它们合并为一个结果并去除重复行
  3. 3. B · COUNT
  4. 4. A · 用一个联结表,其中保存指向 students 和 courses 的外键
  5. 5. D · TRUNCATE TABLE
  6. 6. D · 非键属性之间的传递依赖
  7. 7. D · 某些函数依赖可能无法再在单个表中检查
  8. 8. B · ROW_NUMBER()

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