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

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

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

姓名: ____________________   日期: ____________

1.简单

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

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

在 LIKE 模式中,通配符 % 代表什么?

  1. A任意一个数字
  2. B字符串的结尾
  3. C任意零个或多个字符组成的序列
  4. D字符串该位置上恰好一个字符
3.简单

列上的 UNIQUE 约束保证什么?

  1. A该列在插入后不能被修改
  2. B任何两行在该列中都没有相同的非 NULL 值
  3. C该列自动成为表的主键
  4. D该列的值是排好序的
4.中等

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

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

某列包含值 10、20 和 NULL。AVG(col) 返回什么?

  1. ANULL
  2. B15
  3. C30
  4. D10
6.中等

SQL 中的视图(view)是:

  1. A数据库客户端中用于浏览各个表的界面
  2. B表在磁盘上的副本
  3. C一个行为类似虚拟表的已存储查询
  4. D一种索引类型
7.困难

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

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

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

  1. ARANK()
  2. BCOUNT()
  3. CDENSE_RANK()
  4. DROW_NUMBER()

答案

  1. 1. A · price 在 10 到 20 之间的行,包括 10 和 20
  2. 2. C · 任意零个或多个字符组成的序列
  3. 3. B · 任何两行在该列中都没有相同的非 NULL 值
  4. 4. C · 用一个联结表,其中保存指向 students 和 courses 的外键
  5. 5. B · 15
  6. 6. C · 一个行为类似虚拟表的已存储查询
  7. 7. B · 它在所有同名列上连接,因此新增一列可能悄无声息地改变结果
  8. 8. D · ROW_NUMBER()

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