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

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

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

姓名: ____________________   日期: ____________

1.简单

外键(foreign key)是:

  1. A其值在表的所有行中都必须唯一的列
  2. B外国用户使用的键
  3. C引用另一个表主键的列
  4. D始终加密的键
2.简单

什么是主键(primary key)?

  1. A可以包含重复值但绝不能包含 NULL 的列
  2. B数据库的密码
  3. C每个表的第一列
  4. D唯一标识每一行的一列或一组列
3.简单

哪条 SQL 语句修改已存在的行中的值?

  1. AMODIFY
  2. BINSERT
  3. CUPDATE
  4. DREPLACE COLUMN
4.中等

对于一行,WHERE EXISTS (subquery) 在什么情况下为真?

  1. A子查询恰好返回一行时
  2. B子查询返回一个大于零的数时
  3. C子查询不返回 NULL 值时
  4. D子查询至少返回一行时
5.中等

关于 HAVING,下列哪项说法正确?

  1. A它可以使用聚合函数来过滤分组
  2. B它不能与 GROUP BY 一起使用
  3. C它在 SELECT 语句中必须写在 WHERE 之前
  4. D它用于对结果排序
6.中等

哪个 ACID 特性保证已提交的更改在系统崩溃后仍然存在?

  1. A原子性
  2. B隔离性
  3. C持久性
  4. D一致性
7.困难

R(A, B, C, D) 有函数依赖 A → B 和 C → D。候选键是什么?

  1. A{B, D}
  2. B{C}
  3. C{A, C}
  4. D{A}
8.困难

为什么在标准 SQL 中 SELECT dept, name, COUNT(*) FROM emp GROUP BY dept 是无效的?

  1. AGROUP BY 必须列出表的所有列
  2. BCOUNT(*) 不能与 GROUP BY 一起使用
  3. Cdept 必须出现在聚合函数中
  4. Dname 既没有分组也没有聚合,因此每组没有唯一的值

答案

  1. 1. C · 引用另一个表主键的列
  2. 2. D · 唯一标识每一行的一列或一组列
  3. 3. C · UPDATE
  4. 4. D · 子查询至少返回一行时
  5. 5. A · 它可以使用聚合函数来过滤分组
  6. 6. C · 持久性
  7. 7. C · {A, C}
  8. 8. D · name 既没有分组也没有聚合,因此每组没有唯一的值

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