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

本文详细介绍了MySQL中视图的创建、修改、查看及删除的方法,并列举了不可更新的视图类型及其原因。同时,还深入探讨了视图的三种算法类型:MERGE、TEMPTABLE和UNDEFINED的特点及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不废话直接上代码:


开启视图权限:

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.youkuaiyun.com/qq_37022150

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值