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

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

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

姓名: ____________________   日期: ____________

1.简单

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

  1. AINSERT COLUMN
  2. BALTER TABLE
  3. CCREATE COLUMN
  4. DUPDATE TABLE
2.简单

CROSS JOIN 返回什么?

  1. A只有在共享键列上匹配的行
  2. B只有第一个表的行
  3. C两个表中行的所有组合
  4. D只有不匹配的行
3.简单

UNION ALL 与 UNION 有何不同?

  1. AUNION ALL 保留重复行
  2. BUNION ALL 会对结果排序
  3. CUNION ALL 去除重复行
  4. DUNION ALL 只适用于一个表
4.中等

为什么 SELECT price * 2 AS double_price FROM t WHERE double_price > 10 在大多数数据库中会失败?

  1. AWHERE 在 SELECT 列表之前计算,此时别名还不存在
  2. B别名中不能包含下划线
  3. CWHERE 只能比较文本列
  4. DSELECT 列表中不允许进行算术运算
5.中等

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

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

SQL 中的视图(view)是:

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

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

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

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

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

答案

  1. 1. B · ALTER TABLE
  2. 2. C · 两个表中行的所有组合
  3. 3. A · UNION ALL 保留重复行
  4. 4. A · WHERE 在 SELECT 列表之前计算,此时别名还不存在
  5. 5. A · 不返回任何行,因为比较结果是未知
  6. 6. B · 一个行为类似虚拟表的已存储查询
  7. 7. D · 对列应用函数会妨碍简单的索引范围查找
  8. 8. A · R1 和 R2 的公共属性构成 R1 或 R2 的超键时

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