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

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

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

姓名: ____________________   日期: ____________

1.简单

在事务中,ROLLBACK 的作用是什么?

  1. A删除表
  2. B重复上一条语句
  3. C撤销自事务开始以来所做的更改
  4. D将事务的所有更改永久保存到磁盘
2.简单

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

  1. AINSERT COLUMN
  2. BUPDATE TABLE
  3. CALTER TABLE
  4. DCREATE COLUMN
3.简单

在 PostgreSQL 和 MySQL 中,哪个子句只返回结果的前 10 行?

  1. AMAX 10
  2. BLIMIT 10
  3. CTOP ROWS 10
  4. DFIRST 10 ONLY
4.中等

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

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

第一范式(1NF)要求:

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

SELECT name, CASE WHEN grade >= 5.5 THEN 'pass' ELSE 'fail' END FROM results 返回什么?

  1. A报错,因为 SELECT 中不允许使用 CASE
  2. B每个姓名以及根据成绩得到的标签 'pass' 或 'fail'
  3. C及格和不及格的学生人数
  4. D只返回及格的学生
7.困难

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

  1. ARANK()
  2. BROW_NUMBER()
  3. CCOUNT()
  4. DDENSE_RANK()
8.困难

表 enrolment(student_id, course_id, student_name, grade) 的键是 (student_id, course_id)。它违反了哪个范式?

  1. A都不违反,它满足 BCNF
  2. B第一范式,因为 grade 列的值不是原子的
  3. C只违反第三范式,因为 grade 依赖于 student_name
  4. D第二范式,因为 student_name 只依赖于 student_id

答案

  1. 1. C · 撤销自事务开始以来所做的更改
  2. 2. C · ALTER TABLE
  3. 3. B · LIMIT 10
  4. 4. B · 更新异常
  5. 5. D · 每列都包含原子值,且没有重复组
  6. 6. B · 每个姓名以及根据成绩得到的标签 'pass' 或 'fail'
  7. 7. B · ROW_NUMBER()
  8. 8. D · 第二范式,因为 student_name 只依赖于 student_id

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