Mysql 开启视图权限与创建视图教程

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37022150/article/details/77014105

不废话直接上代码:


开启视图权限:

root登录服务器,运行命令,注意username和data修改

grant create view on username.* to data@'%'; 
grant show view on username.* to data@'%';

GRANT ALL PRIVILEGES ON 用户名.* TO 数据库名@'%' IDENTIFIED BY '数据库密码';


用下面语句测试创建视图,test是创建视图的名称,admin是存在的表名
CREATE VIEW test AS SELECT * from admin;


语法:

创建视图:

create view 视图名 as select 语句;

create  algorithm = MERGE view aaa as select * from user;//

修改视图:

alter view 视图名 as select 语句;

查看视图:

DESCRIBE 命令

删除视图:

drop

不可更新的视图:

· 聚合函数(SUM(), MIN(), MAX(), COUNT()等)。
· DISTINCT
· GROUP BY
· HAVING
· UNION或UNION ALL
· 位于选择列表中的子查询
· Join
· FROM子句中的不可更新视图
· WHERE子句中的子查询,引用FROM子句中的表。
· 仅引用文字值(在该情况下,没有要更新的基本表)。
· ALGORITHM = TEMPTABLE(使用临时表总会使视图成为不可更新的)

 

视图的类型:

MySQL的视图有三种类型:MERGE、TEMPTABLE、UNDEFINED。如果没有ALGORITHM子句,默认算法UNDEFINED(未定义的)。算法会影响mysql处理视图的方式。

1,MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。

2,TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。

3,UNDEFINED,MySQL将选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。






更多文章,请关注: http://blog.csdn.net/qq_37022150

展开阅读全文

没有更多推荐了,返回首页