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

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

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

姓名: ____________________   日期: ____________

1.简单

哪个聚合函数用于统计行数?

  1. AMAX
  2. BCOUNT
  3. CSUM
  4. DAVG
2.简单

什么是候选键?

  1. A两个表共有的、用于关联其行的一组列
  2. B任何含有 NULL 值的列
  3. C能唯一标识每一行的最小列集合
  4. D等待成为外键的列
3.简单

什么是复合键?

  1. A由两列或更多列组成的键
  2. B存储在单独表中的键
  3. C由数据库生成的键
  4. D允许重复值的键
4.中等

在关系代数中,选择运算符(σ)对应于哪个 SQL 子句?

  1. AORDER BY
  2. BGROUP BY
  3. CWHERE
  4. DSELECT 列表
5.中等

哪个查询返回每个部门的最高工资?

  1. ASELECT dept, MAX(salary) FROM emp ORDER BY dept
  2. BSELECT dept, MAX(salary) FROM emp GROUP BY dept
  3. CSELECT MAX(dept), salary FROM emp GROUP BY salary
  4. DSELECT dept, salary FROM emp WHERE salary = MAX(salary)
6.中等

为什么一个表只能有一个聚集索引?

  1. A聚集索引只能建在主键上
  2. B行在物理上只能按一种顺序存储
  3. C聚集索引占用太多内存
  4. DSQL 标准禁止一个表上有多个索引
7.困难

表 employee(emp_id, dept_id, dept_name) 的键是 emp_id,且 dept_id → dept_name。哪种说法正确?

  1. A它满足 2NF 但不满足 3NF
  2. B它满足 BCNF,因此也满足 3NF
  3. C它不满足 2NF
  4. D它不满足 1NF
8.困难

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

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

答案

  1. 1. B · COUNT
  2. 2. C · 能唯一标识每一行的最小列集合
  3. 3. A · 由两列或更多列组成的键
  4. 4. C · WHERE
  5. 5. B · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  6. 6. B · 行在物理上只能按一种顺序存储
  7. 7. A · 它满足 2NF 但不满足 3NF
  8. 8. C · name 既没有分组也没有聚合,因此每组没有唯一的值

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