1.简单
哪个聚合函数返回数值列的平均值?
- AMEAN
- BAVG
- CMEDIAN
- DSUM
2.简单
在 LIKE 模式中,通配符 % 代表什么?
- A任意一个数字
- B字符串该位置上恰好一个字符
- C字符串的结尾
- D任意零个或多个字符组成的序列
3.简单
什么是候选键?
- A等待成为外键的列
- B能唯一标识每一行的最小列集合
- C两个表共有的、用于关联其行的一组列
- D任何含有 NULL 值的列
4.中等
LEFT JOIN 返回:
- A仅返回两个表中匹配的行
- B仅返回右表的所有行
- C左表的所有行以及右表中匹配的行,无匹配处填充 NULL
- D在两个表中都不匹配的行
5.中等
关于 HAVING,下列哪项说法正确?
- A它在 SELECT 语句中必须写在 WHERE 之前
- B它可以使用聚合函数来过滤分组
- C它用于对结果排序
- D它不能与 GROUP BY 一起使用
6.中等
哪个查询返回每个客户的订单数量?
- ASELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- BSELECT DISTINCT COUNT(*) FROM orders
- CSELECT customer_id FROM orders WHERE COUNT(*) > 0
- DSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
7.困难
x 为 NULL,y = 1。条件 (x > 5 OR y = 1) 的值是什么?
- ANULL,因此该行总是被拒绝
- BTRUE
- CUNKNOWN
- DFALSE
8.困难
在 customers LEFT JOIN orders 之后,为什么要用 COUNT(o.id) 而不是 COUNT(*) 来统计每个客户的订单数?
- A对没有订单的客户,COUNT(*) 会把用 NULL 填充的那一行计为 1
- BCOUNT(*) 会忽略含有 NULL 值的行
- C连接之后不允许使用 COUNT(*)
- DCOUNT(o.id) 只统计不同的客户
答案
- 1. B · AVG
- 2. D · 任意零个或多个字符组成的序列
- 3. B · 能唯一标识每一行的最小列集合
- 4. C · 左表的所有行以及右表中匹配的行,无匹配处填充 NULL
- 5. B · 它可以使用聚合函数来过滤分组
- 6. A · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
- 7. B · TRUE
- 8. A · 对没有订单的客户,COUNT(*) 会把用 NULL 填充的那一行计为 1
完整分步解答:请在 examproblems.com 上练习本主题。