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

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

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

姓名: ____________________   日期: ____________

1.简单

哪条 SQL 语句用于从表中检索数据?

  1. ACREATE
  2. BUPDATE
  3. CSELECT
  4. DINSERT
2.简单

哪个关键字在查询中给列或表一个临时的别名?

  1. AAS
  2. BNAME
  3. CRENAME
  4. DALIAS
3.简单

CREATE、ALTER 和 DROP 等语句属于 SQL 的哪一部分?

  1. A数据操纵语言(DML)
  2. B事务控制语言(TCL)
  3. C数据定义语言(DDL)
  4. D数据控制语言(DCL)
4.中等

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

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

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

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

表 a 有 3 行,表 b 有 4 行。SELECT * FROM a CROSS JOIN b 返回多少行?

  1. A7
  2. B3
  3. C4
  4. D12
7.困难

为什么在生产查询中使用 NATURAL JOIN 被认为有风险?

  1. A它在所有同名列上连接,因此新增一列可能悄无声息地改变结果
  2. B它总是返回笛卡尔积
  3. C它忽略主键和外键,只保留 NULL 行
  4. D没有任何数据库支持它
8.困难

表 b 的 y 列包含值 1、2 和 NULL。SELECT * FROM a WHERE x NOT IN (SELECT y FROM b) 返回什么?

  1. A返回 a 中 x 不是 1 或 2 的行
  2. B根本不返回任何行
  3. C返回 a 的每一行
  4. D只返回 a 中 x 为 NULL 的行

答案

  1. 1. C · SELECT
  2. 2. A · AS
  3. 3. C · 数据定义语言(DDL)
  4. 4. A · 非键属性之间的传递依赖
  5. 5. A · SELECT dept, MAX(salary) FROM emp GROUP BY dept
  6. 6. D · 12
  7. 7. A · 它在所有同名列上连接,因此新增一列可能悄无声息地改变结果
  8. 8. B · 根本不返回任何行

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