1.简单
WHERE price BETWEEN 10 AND 20 会选出哪些行?
- Aprice 在 10 到 20 范围之外的行
- Bprice 大于 10 且小于 20 的行,不包括 10 和 20
- C只有 price 等于 10 或 20 的行
- Dprice 在 10 到 20 之间的行,包括 10 和 20
2.简单
哪条语句用于从表中删除行?
- ADROP
- BREMOVE
- CTRUNCATE COLUMN
- DDELETE
3.简单
CROSS JOIN 返回什么?
- A只有第一个表的行
- B两个表中行的所有组合
- C只有不匹配的行
- D只有在共享键列上匹配的行
4.中等
ROLLBACK TO SAVEPOINT s1 的作用是什么?
- A结束事务并提交所有内容
- B从头撤销整个事务
- C撤销保存点 s1 之后所做的更改,事务保持打开
- D删除该保存点以及此后更改过的所有表
5.中等
一个表中有些行的 col 为 NULL。WHERE col = NULL 返回哪些行?
- A返回表中的所有行
- B不返回任何行,因为比较结果是未知
- C只返回 col 为 NULL 的行,与 IS NULL 相同
- D在每种数据库中都报错
6.中等
为什么一个表只能有一个聚集索引?
- A聚集索引占用太多内存
- BSQL 标准禁止一个表上有多个索引
- C聚集索引只能建在主键上
- D行在物理上只能按一种顺序存储
7.困难
EXPLAIN(或 PostgreSQL 中的 EXPLAIN ANALYZE)对一个查询显示什么?
- A查询中每个 SQL 关键字的含义
- B运行过该查询的用户列表
- C优化器选择的执行计划,例如扫描方式和连接方法
- D仅以关系代数表示法改写的查询
8.困难
在 (last_name, first_name) 上有一个复合索引。哪个条件能最有效地利用它?
- AWHERE last_name = 'Jansen'
- BWHERE first_name = 'Eva'
- CWHERE UPPER(first_name) = 'EVA'
- DWHERE first_name LIKE '%a'
答案
- 1. D · price 在 10 到 20 之间的行,包括 10 和 20
- 2. D · DELETE
- 3. B · 两个表中行的所有组合
- 4. C · 撤销保存点 s1 之后所做的更改,事务保持打开
- 5. B · 不返回任何行,因为比较结果是未知
- 6. D · 行在物理上只能按一种顺序存储
- 7. C · 优化器选择的执行计划,例如扫描方式和连接方法
- 8. A · WHERE last_name = 'Jansen'
完整分步解答:请在 examproblems.com 上练习本主题。