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

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

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

姓名: ____________________   日期: ____________

1.简单

什么是主键(primary key)?

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

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

  1. ARENAME
  2. BALIAS
  3. CAS
  4. DNAME
3.简单

如何把结果按工资从高到低排序?

  1. AORDER BY salary DESC
  2. BGROUP BY salary DESC
  3. CSORT salary DOWN
  4. DORDER BY salary ASC
4.中等

第二范式(2NF)消除了:

  1. A所有 NULL 值
  2. B非键列对复合键一部分的部分依赖
  3. C非键列之间通过另一个非键列形成的传递依赖
  4. D外键
5.中等

哪个查询列出从未下过订单的客户?

  1. ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
  2. BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  3. CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  4. DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
6.中等

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

  1. AWHERE
  2. BGROUP BY
  3. CORDER BY
  4. DSELECT 列表
7.困难

SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp 返回什么?

  1. A只返回工资高于本部门平均值的员工
  2. B每一行员工记录以及其所在部门的平均工资
  3. C每个部门一行及其平均工资
  4. D报错,因为 name 不在 GROUP BY 中
8.困难

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

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

答案

  1. 1. B · 唯一标识每一行的一列或一组列
  2. 2. C · AS
  3. 3. A · ORDER BY salary DESC
  4. 4. B · 非键列对复合键一部分的部分依赖
  5. 5. C · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
  6. 6. A · WHERE
  7. 7. B · 每一行员工记录以及其所在部门的平均工资
  8. 8. A · 根本不返回任何行

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