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

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

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

姓名: ____________________   日期: ____________

1.简单

什么是主键(primary key)?

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

GRANT 和 REVOKE 属于 SQL 的哪一部分?

  1. A数据操纵语言(DML)
  2. B数据控制语言(DCL)
  3. C数据查询语言(DQL)
  4. D数据定义语言(DDL)
3.简单

什么是代理键?

  1. A没有业务含义的人工标识符,例如自增 id
  2. B引用另一个表的键
  3. C只在视图中使用的键
  4. D由电子邮件地址等真实数据构成的键
4.中等

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

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

为什么要在列上创建索引?

  1. A为了节省磁盘空间
  2. B为了加快这些列上的插入和更新
  3. C为了加快这些列上的查找和连接
  4. D为了防止出现 NULL 值
6.中等

第一范式(1NF)要求:

  1. A每个非键列都依赖于整个键,且只依赖于键
  2. B没有外键
  3. C每个表恰好只有一列
  4. D每列都包含原子值,且没有重复组
7.困难

一个应用执行 UPDATE item SET qty = 4, version = 8 WHERE id = 1 AND version = 7,如果没有行被更新就报告冲突。这是哪种技术?

  1. A带行锁的严格两阶段锁
  2. B预写日志
  3. C数据库分片
  4. D乐观并发控制
8.困难

下列查询返回什么:SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?

  1. A成绩高于平均成绩的学生
  2. B报错,因为 WHERE 中不允许使用子查询
  3. C仅成绩最高的学生
  4. D所有学生的平均成绩

答案

  1. 1. C · 唯一标识每一行的一列或一组列
  2. 2. B · 数据控制语言(DCL)
  3. 3. A · 没有业务含义的人工标识符,例如自增 id
  4. 4. A · 它可以使用聚合函数来过滤分组
  5. 5. C · 为了加快这些列上的查找和连接
  6. 6. D · 每列都包含原子值,且没有重复组
  7. 7. D · 乐观并发控制
  8. 8. A · 成绩高于平均成绩的学生

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