全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 20 道配套习题

MySQL高级查询

专题说明

本专题深入介绍MySQL高级查询技术,包括视图、存储过程、子查询、联合查询等核心技能,帮助开发者掌握复杂查询场景的解决方案,提升SQL开发效率。

学习目标

  1. 理解视图的概念与使用场景
  2. 掌握存储过程的创建与调用方法
  3. 学会使用子查询处理嵌套查询需求
  4. 掌握UNION联合查询合并多数据源
  5. 理解高级查询的性能优化策略

学习内容

本专题涵盖以下核心知识点:

  • 视图与存储过程:视图的概念、视图创建与管理、存储过程定义、存储过程参数与调用
  • 子查询:子查询类型、WHERE子查询、FROM子查询、相关子查询、子查询优化
  • 联合查询:UNION基础、UNION与UNION ALL区别、联合查询排序、多数据源合并

学习建议

  1. 视图是虚拟表,理解其不存储数据的特性
  2. 存储过程适合封装复杂业务逻辑,预编译执行效率高
  3. 子查询改写为JOIN可提高性能,避免临时表
  4. UNION ALL效率高于UNION,需要去重才用UNION
  5. 高级查询工具提高开发效率,但需注意性能开销

📝 发现内容有误?点击此处直接编辑

📝 配套习题(20 题)

1
单选题

MySQL视图(View)是什么?

A

一张真实的数据表

B

一个虚拟表,基于SELECT查询结果定义,不存储实际数据

C

数据的备份文件

D

索引的类型

2
单选题

MySQL创建视图的基本语法是什么?

A

NEW VIEW view_name AS SELECT ...

B

CREATE VIEW view_name AS SELECT ...

C

ADD VIEW view_name AS SELECT ...

D

MAKE VIEW view_name AS SELECT ...

3
判断题

视图可以简化复杂查询、隐藏底层表结构、提供数据访问控制,但不存储数据不能提高查询性能。

A

B

4
单选题

什么样的视图可以进行INSERT、UPDATE、DELETE操作?

A

所有视图都可以更新

B

只有基于单表、无聚合函数、无DISTINCT、无GROUP BY的简单视图可以更新

C

视图不能进行任何更新操作

D

只有带WHERE条件的视图可以更新

5
单选题

MySQL存储过程(Stored Procedure)是什么?

A

存储在磁盘的数据文件

B

预编译并存储在数据库中的一组SQL语句集合,可重复调用

C

数据的备份副本

D

索引的另一种名称

6
判断题

存储过程的优点包括:预编译执行效率高、减少网络传输、封装业务逻辑、提高安全性、代码复用。

A

B

7
单选题

MySQL存储过程支持哪些参数类型?

A

只支持输入参数

B

IN输入参数、OUT输出参数、INOUT输入输出参数

C

只支持输出参数

D

不支持参数

8
单选题

创建存储过程的基本语法结构是什么?

A

CREATE PROCEDURE name() { SQL语句 }

B

CREATE PROCEDURE name() BEGIN SQL语句 END

C

NEW PROCEDURE name() BEGIN SQL语句 END

D

ADD PROCEDURE name() SQL语句

9
单选题

什么是子查询?

A

查询的别名

B

嵌套在另一个查询内部的SELECT查询

C

查询的备份

D

索引查询

10
单选题

子查询在WHERE子句中使用IN的作用是什么?

A

排序数据

B

判断值是否在子查询返回的结果列表中

C

计算总和

D

分组数据

11
判断题

子查询会先执行,然后将结果传递给外层查询使用。

A

B

12
单选题

FROM子句中的子查询(派生表)是什么作用?

A

只能用于排序

B

子查询结果作为临时表供外层查询使用

C

只能用于分组

D

不能在FROM中使用子查询

13
单选题

EXISTS子查询的作用是什么?

A

计算子查询结果的行数

B

判断子查询是否返回结果(有结果返回TRUE,无结果返回FALSE)

C

返回子查询的所有结果

D

排序子查询结果

14
判断题

IN子查询先执行完整子查询获取所有结果列表,EXISTS子查询逐行判断发现匹配就停止,通常EXISTS效率更高。

A

B

15
单选题

MySQL的UNION操作符的作用是什么?

A

连接两张表

B

合并两个或多个SELECT查询的结果集,去除重复行

C

计算总和

D

分组数据

16
单选题

UNION和UNION ALL的区别是什么?

A

完全相同

B

UNION去除重复行,UNION ALL保留所有行包括重复

C

UNION ALL去除重复行

D

UNION保留所有行

17
判断题

UNION合并的每个SELECT查询必须有相同数量的列,对应列的数据类型必须兼容。

A

B

18
单选题

UNION查询中ORDER BY应该放在哪里?

A

每个SELECT都可以有自己的ORDER BY

B

ORDER BY只能放在最后,对整个合并结果排序

C

ORDER BY只能放在第一个SELECT

D

UNION不支持ORDER BY

19
判断题

UNION ALL效率比UNION高,因为UNION需要额外操作去除重复行,如果确定无重复应使用UNION ALL。

A

B

20
单选题

为什么建议将子查询改写为JOIN?主要原因是什么?

A

JOIN语法更简单

B

子查询可能产生临时表效率较低,JOIN可以利用索引直接连接效率更高

C

子查询不支持索引

D

JOIN可以返回更多数据

← 上一个专题 MySQL索引与优化
下一个专题 → 底层原理与存储引擎

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库