1.简单
GRANT 和 REVOKE 属于 SQL 的哪一部分?
- A数据操纵语言(DML)
- B数据查询语言(DQL)
- C数据定义语言(DDL)
- D数据控制语言(DCL)
2.简单
UNION 对两个 SELECT 查询的结果做什么?
- A只保留出现在第一个查询中而不在第二个查询中的行
- B按某个键把它们左右并排连接
- C把它们合并为一个结果并去除重复行
- D只保留同时出现在两者中的行
3.简单
CHECK 约束的作用是什么?
- A拒绝值不满足某个条件的行
- B在对某个表执行查询之前检查该表是否存在
- C统计表中的行数
- D验证用户的密码
4.中等
某列包含值 10、20 和 NULL。AVG(col) 返回什么?
- A30
- B10
- CNULL
- D15
5.中等
为什么 SELECT price * 2 AS double_price FROM t WHERE double_price > 10 在大多数数据库中会失败?
- AWHERE 只能比较文本列
- BSELECT 列表中不允许进行算术运算
- C别名中不能包含下划线
- DWHERE 在 SELECT 列表之前计算,此时别名还不存在
6.中等
什么是 SQL 注入(SQL injection)?
- A用一条 INSERT 语句快速插入大量行的技术
- B用户输入改变 SQL 查询结构的一种攻击
- C一种数据库备份技术
- D添加索引的一种方式
7.困难
什么是幻读(phantom read)?
- A重复执行的查询返回了另一个已提交事务插入的新行
- B读取了从未写入的数据
- C一个不返回任何行的查询
- D读取了未提交的修改
8.困难
在 (last_name, first_name) 上有一个复合索引。哪个条件能最有效地利用它?
- AWHERE first_name = 'Eva'
- BWHERE UPPER(first_name) = 'EVA'
- CWHERE last_name = 'Jansen'
- DWHERE first_name LIKE '%a'
答案
- 1. D · 数据控制语言(DCL)
- 2. C · 把它们合并为一个结果并去除重复行
- 3. A · 拒绝值不满足某个条件的行
- 4. D · 15
- 5. D · WHERE 在 SELECT 列表之前计算,此时别名还不存在
- 6. B · 用户输入改变 SQL 查询结构的一种攻击
- 7. A · 重复执行的查询返回了另一个已提交事务插入的新行
- 8. C · WHERE last_name = 'Jansen'
完整分步解答:请在 examproblems.com 上练习本主题。