MySQL数据库视图的使用

视图的使用

视图是保存数据库中的select查询,因此对查询执行的大多数操作也可以在视图上进行。使用视图的原因有两个:一是出于安全考虑,用户不必看到整个数据库的结构,而隐藏部分数据;另一个是符合用户日常业务逻辑,使他们更容易理解。

1、认识视图

视图是一个虚拟表,其内容由查询定义。同真实表一样,视图包含一系列带有名称的列和行数据,但视图并不是数据库真实存储的数据表。视图是从一个、多个表或者视图中导出的表,包含一系列带有名称的数据列和若干条数据行。

视图并不同于数据表,它们的区别在于以下几点:

视图不是数据库中真实的表,而是一张虚拟表,其结构和数据是建立在对数据中真实表的查询基础上的。
存储在数据库中的查询操作 SQL 语句定义了视图的内容,列数据和行数据来自于视图查询所引用的实际表,引用视图时动态生成这些数据。
视图没有实际的物理记录,不是以数据集的形式存储在数据库中的,它所对应的数据实际上是存储在视图所引用的真实表中的。
视图是数据的窗口,而表是内容。表是实际数据的存放单位,而视图只是以不同的显示方式展示数据,其数据来源还是实际表。
视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些 SQL 语句的集合。从安全的角度来看,视图的数据安全性更高,使用视图的用户不接触数据表,不知道表结构。
视图的建立和删除只影响视图本身,不影响对应的基本表。

2、创建视图

语法格式如下:

CREATE VIEW <视图名> AS <SELECT语句>

语法说明如下:

<视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
<SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

在SQL语句中命名规范中,视图一般采用view_xxx或v_xxx的样式来命名。

3、修改视图

语法格式如下:

ALTER VIEW <视图名> AS <SELECT语句>

语法说明如下:

<视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
<SELECT 语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

4、删除视图

语法格式如下:

DROP VIEW <视图名1> [ , <视图名2> …]

其中:
<视图名>指定要删除的视图名。DROP VIEW 语句可以一次删除多个视图,但是必须在每个视图上拥有 DROP 权限。

使用视图注意事项

每个视图中可以使用多个表
与查询相似,一个视图可以嵌套另一个视图,但最好不要过三层
对视图进行添加,更新和删除操作直接影响表中的数据
当视图来自多个表时,不允许添加和删除数据。

说明:从一个或者多个表或视图导出的虚拟表,其结构和数据时建立在对表的查询基础上的。理论上它可以像普通物理表一样使用,如增加,删除,修改和查询利用视图更新数据实际上是对数据库中的原始表进行更新操作。因为使用视图修改数据库数据会由许多限制,所以一般在实际开发中视图仅用作查询。

如何区分视图和表呢?
在安装mysql成功后 系统会自动创建一个数据库 information_schema,在该数据库中存放一个包含视图信息的表views,可以用来查看所有视图信息。

USE information_schema;
SELECT * from views\G;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值