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

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

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

姓名: ____________________   日期: ____________

1.简单

哪条 SQL 语句向表中添加新行?

  1. AALTER
  2. BSELECT
  3. CINSERT
  4. DUPDATE
2.简单

什么是复合键?

  1. A存储在单独表中的键
  2. B由两列或更多列组成的键
  3. C由数据库生成的键
  4. D允许重复值的键
3.简单

哪种约束确保某列永远不能留空(NULL)?

  1. ACHECK NULL
  2. BDEFAULT
  3. CUNIQUE
  4. DNOT NULL
4.中等

SQL 中的视图(view)是:

  1. A一个行为类似虚拟表的已存储查询
  2. B一种索引类型
  3. C数据库客户端中用于浏览各个表的界面
  4. D表在磁盘上的副本
5.中等

对于电话号码为 NULL 的客户,SELECT COALESCE(phone, 'unknown') FROM customers 返回什么?

  1. A'unknown'
  2. B空字符串
  3. C报错
  4. DNULL
6.中等

什么是数据库触发器?

  1. A用户手动运行的查询
  2. B当表上发生 INSERT、UPDATE 或 DELETE 等指定事件时自动运行的代码
  3. C一种加快搜索的索引
  4. D数据库的定时备份
7.困难

相关子查询(correlated subquery)是指:

  1. A只在外层查询之前运行一次,并将结果缓存供每一行使用
  2. B只使用聚合函数的子查询
  3. C通过外键连接两个表的子查询
  4. D引用外层查询的列,并针对外层的每一行进行求值的子查询
8.困难

对于一个查询,什么是覆盖索引?

  1. A只建在主键上的索引
  2. B每晚重建一次的索引
  3. C覆盖每个表每一列的索引
  4. D包含查询所需全部列的索引,因此不必读取表本身

答案

  1. 1. C · INSERT
  2. 2. B · 由两列或更多列组成的键
  3. 3. D · NOT NULL
  4. 4. A · 一个行为类似虚拟表的已存储查询
  5. 5. A · 'unknown'
  6. 6. B · 当表上发生 INSERT、UPDATE 或 DELETE 等指定事件时自动运行的代码
  7. 7. D · 引用外层查询的列,并针对外层的每一行进行求值的子查询
  8. 8. D · 包含查询所需全部列的索引,因此不必读取表本身

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