数据库 - 视图

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

1. 基本概念

我理解的就是将一条select语句进行了封装,封装的结果就是一个视图,在使用者看来视图就是一个表(数据来源于里面select语句查询出来的结果),但是实际上数据并没有查出来而是在使用视图的时候在通过视图里面语句动态的再去查询

这也就是为什么网上都说视图View是一种虚拟的表,本身不保存数据,内部封装了一条SELECT语句,数据来源于查询的一张或多张实际数据的表

视图有以下好处

  • 重复利用SQL语句
  • 简化SQL查询,快速取数据
  • 只用知道表的部分结构
  • 保护数据,根据特定授权(分配用户一定权限,安全性)
  • 更改数据格式,视图可返回与底层表的格式不同的数据表,展现出来

视图和表的基本区别

  • 表要占用磁盘空间,视图不需要
  • 视图不能添加索引
  • 使用视图可以简化查询
  • 视图可以提高安全性

2. 使用

创建视图

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
   [WITH [CASCADED | LOCAL] CHECK OPTION]

# 1)OR REPLACE:表示替换已有视图

# 2)ALGORITHM:表示视图选择算法,默认算法是UNDEFINED(未定义的):MySQL自动选择要使用的算法 ;merge合并;temptable临时表

# 3)select_statement:表示select语句

# 4)[WITH [CASCADED | LOCAL] CHECK OPTION]:表示视图在更新时保证在视图的权限范围之内

#  cascade是默认值,表示更新视图的时候,要满足视图和表的相关条件
#   local表示更新视图的时候,要满足该视图定义的一个条件即可

# TIPS:推荐使用WHIT [CASCADED|LOCAL] CHECK OPTION选项,可以保证数据的安全性 

修改视图

alter view view_name
As select_statement
[with|cascaded|local|check option]

删除视图

drop view [if exists] view_name,view_name …[restrict|cascade]

具体使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值