浅谈mysql视图

一、什么是mysql视图?有什么作用?

视图:存储的查询语句,可以理解为虚拟表。

同真实的表一样,视图包含一系列带有名称的列和行数据。
但是,视图并不在数据库中以存储的数据值集形式存在。行
和列数据来自由定义视图的查询所引用的表,并且在引用视
图时动态生成。

ps:因为视图时虚拟表,所以对于视图的插入操作是不成立的。

二、mysql视图会提高查询效率吗?

mysql的视图不会建立中间表,也就是无法缓存视图查询的数据,
这样每次用视图都得重新查一次,速度很慢。

而微软的sql server数据库的视图由于建立中间表,每次使用视图
都不用去查询,确实提高了速度

三、创建视图

create view v1 as select * from student  where sid>1;
--v1是视图名称   

四、查询视图

select * from v1;
注意:
数据库视图是动态的,当表的数据发生变化时,视图也反映了这些
数据的变化

例如:
执行update student set sname = '小山炮' where sname = '山炮';,
修改student表的数据,再查看视图select * from v1;发现,视图里
的数据也变化了(这里就说明了视图是动态的)

ps:查看当前数据库下所有视图:
show full tables where table_type like ‘VIEW’;

五、基于视图来创建视图

 create view v2 as select sid,sname from v1;

六、修改视图

(其实修改视图就是修改存储的SQL语句)

alter view 视图名称  as SQL

七、视图的优缺点?

优点:

(1)数据库视图允许简化复杂查询:
    数据库视图由许多基础表相关联的SQL语句定义。
    通过数据库视图,您只需要使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句

(2)数据库视图有助于限制对特定用户的数据访问。
    您可能不希望所有用户都可以查询敏感数据的子集。可以使用数据库视图将非敏感数据仅显示给特定用户组。

(3)数据库视图提供额外的安全层。
    安全是任何关系数据库管理系统的重要组成部分。数据库视图为数据库管理系统提供了额外的安全性。数据库视图
    允许您创建只读视图,以将只读数据公开给特定用户。用户只能以只读视图检索数据,但无法更新

(4)数据库视图实现向后兼容。
    假设你有一个中央数据库,许多应用程序正在使用它。有一天,您决定重新设计数据库以适应新的业务需求。删除
    一些表并创建新的表,并且不希望更改影响其他应用程序。在这种情况下,可以创建与将要删除的旧表相同的模式的数据库视图

缺点:
    性能:从数据库视图查询数据可能很慢,特别是如果视图是基于其他视图创建的
    表依赖关系:
    将根据数据库的基础表创建一个视图。每当更改与其相关联的表结构时,都必须更改视图。
    (为什么说要修改视图呢?因为,假如说,一个表增加了一个字段,视图中是不会把刚刚添加
    的字段假如进去的,所以说要修改视图)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值