1.简单
哪条语句删除整个表,包括其结构?
- ADROP TABLE
- BREMOVE TABLE
- CTRUNCATE ROWS
- DDELETE FROM
2.简单
UNION 对两个 SELECT 查询的结果做什么?
- A只保留出现在第一个查询中而不在第二个查询中的行
- B按某个键把它们左右并排连接
- C把它们合并为一个结果并去除重复行
- D只保留同时出现在两者中的行
3.简单
WHERE price BETWEEN 10 AND 20 会选出哪些行?
- A只有 price 等于 10 或 20 的行
- Bprice 在 10 到 20 之间的行,包括 10 和 20
- Cprice 在 10 到 20 范围之外的行
- Dprice 大于 10 且小于 20 的行,不包括 10 和 20
4.中等
ROLLBACK TO SAVEPOINT s1 的作用是什么?
- A结束事务并提交所有内容
- B撤销保存点 s1 之后所做的更改,事务保持打开
- C删除该保存点以及此后更改过的所有表
- D从头撤销整个事务
5.中等
一个表中有些行的 col 为 NULL。WHERE col = NULL 返回哪些行?
- A不返回任何行,因为比较结果是未知
- B返回表中的所有行
- C只返回 col 为 NULL 的行,与 IS NULL 相同
- D在每种数据库中都报错
6.中等
学生可以选修多门课程,课程也有多名学生。在表中如何对此建模?
- A把 students 和 courses 合并成一个表
- B把课程 id 列表存储在一列中
- C用一个联结表,其中保存指向 students 和 courses 的外键
- D在 students 表中加一个指向 courses 的外键列 course_id
7.困难
哪种隔离级别可以防止脏读,但仍允许不可重复读?
- A可重复读(Repeatable read)
- B可串行化(Serializable)
- C读未提交(Read uncommitted)
- D读已提交(Read committed)
8.困难
把 R 分解为 R1 和 R2 在什么情况下保证是无损的?
- AR 的每个属性都同时出现在 R1 和 R2 中时
- BR1 和 R2 的列数相同时
- CR1 和 R2 的公共属性构成 R1 或 R2 的超键时
- DR1 和 R2 没有公共属性时
答案
- 1. A · DROP TABLE
- 2. C · 把它们合并为一个结果并去除重复行
- 3. B · price 在 10 到 20 之间的行,包括 10 和 20
- 4. B · 撤销保存点 s1 之后所做的更改,事务保持打开
- 5. A · 不返回任何行,因为比较结果是未知
- 6. C · 用一个联结表,其中保存指向 students 和 courses 的外键
- 7. D · 读已提交(Read committed)
- 8. C · R1 和 R2 的公共属性构成 R1 或 R2 的超键时
完整分步解答:请在 examproblems.com 上练习本主题。