您的位置:首页 > 数据库 > MySQL

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

2017-08-09 19:56 1216 查看
不废话直接上代码:

开启视图权限:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql