MySQL—视图

视图

个人学习使用--鄙人的学习笔记

视图的定义

        视图是虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。

        视图的数据来源于基础表,视图只保存了查询的sql逻辑,不保存查询结果。


视图的作用

1.简化用户对数据的理解,简化操作,将一些经常使用的查询定义为视图,方便用户使用
2.数据库可以授权,但是不能具体授权到具体行和列,通过视图用户只能查询和修改他们所能见到的数据
3.可以 屏蔽真实表结构变化带来的影响

视图可以进行增删改么?

       视图本身并不包含数据,只是基表数据的逻辑映射。所以当对视图执行DML操作时,实际上是对基表的DML操作。视图可以修改但是有比较多的限制条件,一般还是用于查询。并且越复杂的视图,修改越困难。

下面这个里面有详细的视图的创建、删除、更新、查询

简单聊聊什么是 MySQL 视图(创建、删除、更新、查询)_mysql删除视图restrict、cascade的含义-CSDN博客
下面情况的视图不可以执行insert、update和delete操作:
1)多表连接
2)包含distinct
3)包含聚合函数
4)包含groupby
5)包含orderby
6)包含union、unionall
7)包含子查询等

视图的SQL语句

1.创建
create or replace view 视图名称 as select语句 
2.查询
show create view 视图名称
select * from 视图
desc 视图名
3.修改
create or replace view 视图名 as select语句
alter view 视图名 as select
4.删除
drop view 视图名称

视图与表的区别

表、视图、查询表的区别(关系的三种基本类型)_查询表和视图表的区别-CSDN博客

1、视图是已经编译好的sql语句,而表不是。

2、视图没有实际的物理记录,而表有。

3、表占用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时修改,但视图只能由创建的语句来修改。

4、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

5、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。

6、视图的建立和删除只影响视图本身,不影响对应的基本表。

你可能感兴趣的:(mysql,数据库)