版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangguosb/article/details/84075761
什么是视图?
视图是一张“虚表”(只存在表的定义,不存储数据,表中逻辑上的数据来源于对其其它表的查询),如下图所示:
视图的作用
- 不同类型的用户存在不同的视图,方便精确的权限控制;
- 查询语句变得精简;
视图DDL
创建视图
从创建语句可以看出,视图创建时就已经绑定了查询语句(即指明数据源和获取方式);
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name [(column_name [COMMENT column_comment], ...) ]
[COMMENT view_comment]
[TBLPROPERTIES (property_name = property_value, ...)]
AS SELECT ...;
修改视图
- 修改绑定的查询语句
ALTER VIEW [db_name.]view_name AS select_statement;
- 修改视图属性
ALTER VIEW [db_name.]view_name SET TBLPROPERTIES table_properties;
删除视图
DROP VIEW [IF EXISTS] [db_name.]view_name;
视图DML
视图只能查询,无法修改数据;
show语句
- 查看视图创建语句:SHOW CREATE VIEW [db_name.]view_name;
- 查看存在的视图:
SHOW VIEWS; -- show all views in the current database
SHOW VIEWS 'test_*'; -- show all views that start with "test_"
SHOW VIEWS '*view2'; -- show all views that end in "view2"
SHOW VIEWS LIKE 'test_view1|test_view2'; -- show views named either "test_view1" or "test_view2"
SHOW VIEWS FROM test1; -- show views from database test1
SHOW VIEWS IN test1; -- show views from database test1 (FROM and IN are same)
SHOW VIEWS IN test1 "test_*"; -- show views from database test2 that start with “test_"
参考: