数据库与 SQL练习卷(附答案)

免费可打印的数据库与 SQL练习卷:8 道题,从简单到考试水平,附答案。可打印或另存为 PDF。

教师请注意: 可免费打印、复印并在课堂上使用。每份新练习题都有新的数值和独立的答案。欢迎在课程页面添加指向 ExamProblems 的链接。

姓名: ____________________   日期: ____________

1.简单

GRANT 和 REVOKE 属于 SQL 的哪一部分?

  1. A数据操纵语言(DML)
  2. B数据查询语言(DQL)
  3. C数据定义语言(DDL)
  4. D数据控制语言(DCL)
2.简单

UNION 对两个 SELECT 查询的结果做什么?

  1. A只保留出现在第一个查询中而不在第二个查询中的行
  2. B按某个键把它们左右并排连接
  3. C把它们合并为一个结果并去除重复行
  4. D只保留同时出现在两者中的行
3.简单

CHECK 约束的作用是什么?

  1. A拒绝值不满足某个条件的行
  2. B在对某个表执行查询之前检查该表是否存在
  3. C统计表中的行数
  4. D验证用户的密码
4.中等

某列包含值 10、20 和 NULL。AVG(col) 返回什么?

  1. A30
  2. B10
  3. CNULL
  4. D15
5.中等

为什么 SELECT price * 2 AS double_price FROM t WHERE double_price > 10 在大多数数据库中会失败?

  1. AWHERE 只能比较文本列
  2. BSELECT 列表中不允许进行算术运算
  3. C别名中不能包含下划线
  4. DWHERE 在 SELECT 列表之前计算,此时别名还不存在
6.中等

什么是 SQL 注入(SQL injection)?

  1. A用一条 INSERT 语句快速插入大量行的技术
  2. B用户输入改变 SQL 查询结构的一种攻击
  3. C一种数据库备份技术
  4. D添加索引的一种方式
7.困难

什么是幻读(phantom read)?

  1. A重复执行的查询返回了另一个已提交事务插入的新行
  2. B读取了从未写入的数据
  3. C一个不返回任何行的查询
  4. D读取了未提交的修改
8.困难

在 (last_name, first_name) 上有一个复合索引。哪个条件能最有效地利用它?

  1. AWHERE first_name = 'Eva'
  2. BWHERE UPPER(first_name) = 'EVA'
  3. CWHERE last_name = 'Jansen'
  4. DWHERE first_name LIKE '%a'

答案

  1. 1. D · 数据控制语言(DCL)
  2. 2. C · 把它们合并为一个结果并去除重复行
  3. 3. A · 拒绝值不满足某个条件的行
  4. 4. D · 15
  5. 5. D · WHERE 在 SELECT 列表之前计算,此时别名还不存在
  6. 6. B · 用户输入改变 SQL 查询结构的一种攻击
  7. 7. A · 重复执行的查询返回了另一个已提交事务插入的新行
  8. 8. C · WHERE last_name = 'Jansen'

完整分步解答:请在 examproblems.com 上练习本主题。