大家好,我是漫步coding, 最近在整理2022年MySQL最新面试题, 大家也可以通过我下面的博客地址在线阅读, 今天讲讲第6篇:   MySQL视图。本文首发于公众号: 漫步coding


2022年MySQL最新面试题第6篇 - MySQL视图_存储过程

2022年MySQL最新面试题目录

  • MySQL数据库基础知识
  • MySQL索引
  • MySQL存储引擎
  • MySQL事务
  • MySQL数据库读写锁​
  • MySQL视图
  • MySQL触发器
  • MySQL数据库优化
  • MySQL部署和运维

0、概要

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

1、为什么要使用视图?

出现概率: ★★

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

2022年MySQL最新面试题第6篇 - MySQL视图_数据库_02

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

调用存储过程