Mysql 视图

一、什么是视图

视图是从一个或多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样用户可以不看整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。 

图片[1] - Mysql 视图 - 三酷猫

二、创建视图

 CREATE[OR REPLACE] VIEW viewname[(columnlist)]   
    AS SELECT statement  

很简单,其数据来源于查询语句。

三、查看视图

select * from view_name #查询视图中的数据。跟table差不多。

desc view_name #查看视图结构

show tables #查看所选数据库中的所有表,包含视图

show create view view_name #查看创建视图的语句

四、更新视图数据

更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图实质是一个虚拟表,其中没有数据,通过视图更新时都是转换到基本表更新。更新视图时,只能更新权限范围内的数据,超出范围就不能更新了。

进行insert、update、delete操作时,原表数据也会改变

update view_student set name='小王' where name='小王王';

不能更新的情况:

  • 视图中包含SUM()、COUNT()、MAX()和MIN()等函数;
  • 视图中包含UNION、UNION ALL、DISTINCT、GROUP BY和HAVING等关键字;
  • 视图对应的表存在没有默认值的列,而且该列没有包含在视图里;
  • 包含子查询的视图;
  • 其他特殊情况;

五、修改视图

当基本表的某些字段发生变化的时候,可以通过修改视图来保持与基本表的一致性。ALTER语句来修改视图。 

ALTER VIEW viewname[columnlist]   
AS SELECT statement

这个语法中的所有关键字和参数除了alter 外,其他都和创建视图是一样的。

六、删除视图

DROP VIEW viewname [,viewnamen];  #可同时删除多个视图。不会删除原表
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享