1.简单
什么是主键(primary key)?
- A数据库的密码
- B唯一标识每一行的一列或一组列
- C每个表的第一列
- D可以包含重复值但绝不能包含 NULL 的列
2.简单
哪个关键字在查询中给列或表一个临时的别名?
- ARENAME
- BALIAS
- CAS
- DNAME
3.简单
如何把结果按工资从高到低排序?
- AORDER BY salary DESC
- BGROUP BY salary DESC
- CSORT salary DOWN
- DORDER BY salary ASC
4.中等
第二范式(2NF)消除了:
- A所有 NULL 值
- B非键列对复合键一部分的部分依赖
- C非键列之间通过另一个非键列形成的传递依赖
- D外键
5.中等
哪个查询列出从未下过订单的客户?
- ASELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id = NULL
- BSELECT c.name FROM customers c INNER JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- CSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- DSELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NOT NULL
6.中等
在关系代数中,选择运算符(σ)对应于哪个 SQL 子句?
- AWHERE
- BGROUP BY
- CORDER BY
- DSELECT 列表
7.困难
SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp 返回什么?
- A只返回工资高于本部门平均值的员工
- B每一行员工记录以及其所在部门的平均工资
- C每个部门一行及其平均工资
- D报错,因为 name 不在 GROUP BY 中
8.困难
表 b 的 y 列包含值 1、2 和 NULL。SELECT * FROM a WHERE x NOT IN (SELECT y FROM b) 返回什么?
- A根本不返回任何行
- B只返回 a 中 x 为 NULL 的行
- C返回 a 中 x 不是 1 或 2 的行
- D返回 a 的每一行
答案
- 1. B · 唯一标识每一行的一列或一组列
- 2. C · AS
- 3. A · ORDER BY salary DESC
- 4. B · 非键列对复合键一部分的部分依赖
- 5. C · SELECT c.name FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL
- 6. A · WHERE
- 7. B · 每一行员工记录以及其所在部门的平均工资
- 8. A · 根本不返回任何行
完整分步解答:请在 examproblems.com 上练习本主题。