2022年MySQL最新面试题 - MySQL视图

3/28/2022

# 0、概要

  • 1、为什么要使用视图?什么是视图?
  • 2、视图有哪些特点?
  • 3、视图的使用场景有哪些?
  • 4、视图的优点
  • 5、视图的缺点
  • 6、存储过程与函数

# 1、为什么要使用视图?

出现概率: ★★

使用视图可以简化复杂的SQL操作,方便重用

# 2、视图有哪些特点?

出现概率: ★★★

a)、视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
b)、视图是由基本表(实表)产生的表(虚表)。
c)、视图的建立和删除不影响基本表。
d)、对视图内容的更新(添加,删除和修改)直接影响基本表。
e)、当视图来自多个基本表时,不允许添加和删除数据。

# 3、视图的使用场景有哪些?

出现概率: ★★★

知道了视图的特点之后,我们就知道了可以使用视图 关联多个表的数据, 方便我们查询了,这个是在开发中还是有蛮多场景的, 比如: 采购单:有价格、数量、税率、含税金额,多半没有不含税金额、税额,而这些字段在很多报表中有都会用到,所以我们可以创建一个含有计算列字段的视图来解决这个问题。

# 4、视图的优点

出现概率: ★★★

  • 数据库视图允许简化复杂查询
  • 数据库视图有助于限制对特定用户的数据访问

# 5、视图的缺点

出现概率: ★★★

  • 性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。
  • 表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。

# 6、存储过程与函数

出现概率: ★★

本质上没区别,执行的本质都一样。函数有且只能返回一个变量, 存储过程可以返回多个 。

一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。

对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类型。存储过程声明时不需要返回类型,而函数声明时需要描述返回类型,且函数体中必须包含一个有效的RETURN语句。

存储过程一般是作为一个独立的部分来执行( EXECUTE 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 SQL语句中不可用存储过程,而可以使用函数。

创建存储过程

create procedure sp_name()
begin
.........
end

调用存储过程

call sp_name()

也欢迎关注我的公众号: 漫步coding, 回复: mysql免费获取最新Mysql面试题汇总(含答案)。 一起交流, 在coding的世界里漫步。

希望这篇文章可以帮助大家, 也希望大家都能找到找到的好工作。