1.简单
CREATE、ALTER 和 DROP 等语句属于 SQL 的哪一部分?
- A数据控制语言(DCL)
- B数据定义语言(DDL)
- C数据操纵语言(DML)
- D事务控制语言(TCL)
2.简单
WHERE price BETWEEN 10 AND 20 会选出哪些行?
- Aprice 在 10 到 20 范围之外的行
- Bprice 大于 10 且小于 20 的行,不包括 10 和 20
- Cprice 在 10 到 20 之间的行,包括 10 和 20
- D只有 price 等于 10 或 20 的行
3.简单
哪个 SQL 关键字用于去除结果中的重复行?
- ADIFFERENT
- BDISTINCT
- CUNIQUE
- DSINGLE
4.中等
employees 表有一列 manager_id,引用另一名员工。如何在每名员工旁边列出其经理的姓名?
- A在磁盘上创建该表的第二个副本
- B使用 UNION ALL 和 WHERE 过滤把该表与自身合并
- C只使用 GROUP BY manager_id
- D用两个别名把 employees 表与它自身连接
5.中等
ROLLBACK TO SAVEPOINT s1 的作用是什么?
- A删除该保存点以及此后更改过的所有表
- B结束事务并提交所有内容
- C撤销保存点 s1 之后所做的更改,事务保持打开
- D从头撤销整个事务
6.中等
为什么一个表只能有一个聚集索引?
- A聚集索引占用太多内存
- B聚集索引只能建在主键上
- C行在物理上只能按一种顺序存储
- DSQL 标准禁止一个表上有多个索引
7.困难
两阶段锁(2PL)能保证:
- A事务永远不需要等待
- B冲突可串行化的调度
- C不需要任何锁
- D永远不会发生死锁
8.困难
下列查询返回什么:SELECT name FROM students WHERE grade > (SELECT AVG(grade) FROM students)?
- A所有学生的平均成绩
- B成绩高于平均成绩的学生
- C仅成绩最高的学生
- D报错,因为 WHERE 中不允许使用子查询
答案
- 1. B · 数据定义语言(DDL)
- 2. C · price 在 10 到 20 之间的行,包括 10 和 20
- 3. B · DISTINCT
- 4. D · 用两个别名把 employees 表与它自身连接
- 5. C · 撤销保存点 s1 之后所做的更改,事务保持打开
- 6. C · 行在物理上只能按一种顺序存储
- 7. B · 冲突可串行化的调度
- 8. B · 成绩高于平均成绩的学生
完整分步解答:请在 examproblems.com 上练习本主题。