1.简单
哪个子句在分组之前过滤行?
- AORDER BY
- BHAVING
- CWHERE
- DGROUP BY
2.简单
哪条语句删除整个表,包括其结构?
- AREMOVE TABLE
- BDELETE FROM
- CTRUNCATE ROWS
- DDROP TABLE
3.简单
WHERE country IN ('NL', 'BE', 'DE') 的作用是什么?
- A保留 country 等于列表中任一值的行
- B保留 country 不在列表中的行
- C按列表的顺序对行排序
- D保留 country 值同时包含这三个代码的行
4.中等
哪个查询返回每个客户的订单数量?
- ASELECT customer_id FROM orders WHERE COUNT(*) > 0
- BSELECT DISTINCT COUNT(*) FROM orders
- CSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
- DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
5.中等
某列包含值 10、20 和 NULL。AVG(col) 返回什么?
- A15
- B10
- C30
- DNULL
6.中等
EXCEPT(在 Oracle 中称为 MINUS)返回什么?
- A第二个查询中不出现在第一个查询中的行
- B两个查询中都出现的行
- C第一个查询中不出现在第二个查询中的行
- D两个查询的所有行,去除重复
7.困难
R(A, B, C, D) 有函数依赖 A → B 和 C → D。候选键是什么?
- A{B, D}
- B{A}
- C{C}
- D{A, C}
8.困难
SELECT day, SUM(amount) OVER (ORDER BY day) FROM sales 计算的是什么?
- A每一行上所有金额的总和
- B每天一行,只有当天的总额
- C按 day 排序的 amount 累计总和
- D每天的平均金额
答案
- 1. C · WHERE
- 2. D · DROP TABLE
- 3. A · 保留 country 等于列表中任一值的行
- 4. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- 5. A · 15
- 6. C · 第一个查询中不出现在第二个查询中的行
- 7. D · {A, C}
- 8. C · 按 day 排序的 amount 累计总和
完整分步解答:请在 examproblems.com 上练习本主题。