MySQL数据库:视图View

 

一、视图的定义:

视图(View)是从一个或者多个表(或视图)导出的表,其内容由查询定义。视图是一个虚拟表,数据库中只存储视图的定义,不存储视图对应的数据,在对视图的数据进行操作时,系统根据视图的定义去操作相应的基本表。

可以说,视图是在基本表之上建立的表,它的结构和内容都来自基本表,依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

 

二、视图的作用:

1、简化了操作,把经常使用的数据定义为视图:

我们在使用查询时,在很多时候我们要使用聚合函数,同时还要显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,我们可以创建视图,之后只需要使用select * from view就可以了,简化了操作。 

2、安全性,用户只能查询和修改能看到的数据:

视图的安全性可以防止未授权用户查看特定的行或列,使用户只能看到表中特定行列,定制用户的数据,因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以将基表中重要的字段信息,不通过视图给用户。视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图不可以随意的更改和删除,可以保证数据的安全性。 

3、逻辑上的独立性,屏蔽了真实表的结构带来的影响:

视图可以使应用程序和数据库表在一定程度上独立,如果没有视图,应用一定是建立在表上。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

 

三、视图的缺点:

1、性能差:

数据库必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也要把它变成一个复杂的结合体,需要花费一定的时间。(每次SELECT视图的时候,视图都会重新计算创建它的规则,即sql算法,如果算法复杂,数据量大,那样每次查询就很慢了)

2、修改限制:

当用户试图修改视图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于简单的视图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。

 

四、视图的相关操作:

对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,多表视图一般用于查询,不改变基本表的数据。

参考链接:http://www.w3school.com.cn/sql/sql_view.asp

1、创建视图:

CREATE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

2、查询视图:

seclect column_name(s) from view_name;

3、更新视图:

CREATE OR REPLACE VIEW view_name AS

SELECT column_name(s)

FROM table_name

WHERE condition

4、删除视图:

Drop View view_name;

 

五、视图与表的区别:

1、视图不占用物理空间,只是逻辑概念的存在,数据库中只存储视图的定义,不存储视图对应的数据,没有实际的物理记录,是虚表。而表是实际的物理记录,需要占用物理空间。

2、表是内容,视图是窗口。

3、表是内模式,视图是外模式。

4、视图的建立和删除只影响视图本身,不影响对应的基本表。但是,基本表的删除和修改会影响到视图。

5、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,是一些SQL语句执行结果集合的可视化的表。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

 

 

参考文章:https://blog.csdn.net/buhuikanjian/article/details/53105416

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张维鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值