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

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

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

姓名: ____________________   日期: ____________

1.简单

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

  1. AINSERT
  2. BMODIFY
  3. CUPDATE
  4. DREPLACE COLUMN
2.简单

哪条语句用于从表中删除行?

  1. ADROP
  2. BDELETE
  3. CREMOVE
  4. DTRUNCATE COLUMN
3.简单

什么是代理键?

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

什么是 SQL 注入(SQL injection)?

  1. A用一条 INSERT 语句快速插入大量行的技术
  2. B一种数据库备份技术
  3. C用户输入改变 SQL 查询结构的一种攻击
  4. D添加索引的一种方式
5.中等

一个表在每一行订单上都存储了客户地址。只修改其中一行的地址而不修改其他行,这是哪种情况的例子?

  1. A更新异常
  2. B删除异常
  3. C幻读
  4. D插入异常
6.中等

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

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

两个事务都读到 stock = 10,各自减 1 后写回结果,最终得到 9 而不是 8。这是哪种异常?

  1. A幻读
  2. B脏读
  3. C删除异常
  4. D丢失更新
8.困难

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

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

答案

  1. 1. C · UPDATE
  2. 2. B · DELETE
  3. 3. B · 没有业务含义的人工标识符,例如自增 id
  4. 4. C · 用户输入改变 SQL 查询结构的一种攻击
  5. 5. A · 更新异常
  6. 6. A · 非键属性之间的传递依赖
  7. 7. D · 丢失更新
  8. 8. A · 成绩高于平均成绩的学生

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