MySQL 视图

视图是一种虚拟的数据表,他们的行为和数据表一样,但并不真正包含数据。它们用底层(真正的)数据表或其他视图定义出来的“假”数据表,用来提供查看数据表的另一种方法,这通常可以简化应用程序。

如果要选取给定数据表的数据列的一个子集,把它定义为一个简单的视图是最简单的做法。加入你经堂需要从president数据表选取last_name,first_name等数据列,但不想每次都必须写出所有这些数据列。如下所示:

SELECT last_name, first_name FROM president;
你可以在president上创建一个视图,让它只包括你想要的数据列:

CREATE VIEW vpres AS SELECT last_name, first_name FROM president;

这样你就可以在这个视图上使用SELECT *,而你看到的将是你在视图定义里给出的那些数据列。
SELECT * FROM vpres;
如果你在查询某个视图还可以使用一个WHERE子句,MySQL将在执行该查询时把它添加到那个视图的定义上以进一步限制检索结果

SELECT * FROM vpres WHERE last_name = 'Admin';
在查询视图时还可以使用ORDER BY、LIMIT等子句,其效果与查询一个真正的数据表时的情况一样。

有些视图是可更新的,这意味着你可以通过对视图进行操作而在其底层数据表里插入、更新或删除数据行。

有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应该看到这些数据的用户视图上。这样视图机制就自动提供了对机密数据的安全保护功能。例如,Student表涉及全校15个院系学生数据,可以在其上定义15个视图,每个视图只包含一个院系的学生数据,并只允许每个院系的主任查询和修改本原系学生视图。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值