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