mysql中视图的本质、作用、特点和视图可否更新

视图的本质、作用、语法、特点和视图的更新

视图的本质

视图是一种虚拟表,是数据逻辑,在物理上是不存在的,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以储存的数据值形式存在。行和列数据来自定义视图的查询所引用基本表(物理表)。

视图的作用

提高复杂SQL语句的复用性和表操作的安全性, 简化sql查询,提高开发效率。
视图使用者只能看到视图中所定义的数据,而不是视图所引用表中的数据,从而提高了数据库中数据的安全性。

视图的特点

a.视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。
b.视图是由基本表(实表)产生的表(虚表)。
c.视图的建立和删除不影响基本表。
d.对视图内容的更新(添加,删除和修改)直接影响基本表。
e.当视图来自多个基本表时,不允许添加和删除数据。

视图的更新

视图一般不可更新
可更新的情况:基本表的行列子集视图。
不可更新的情况:视图的属性来自函数,表达式,视图中有聚集函数,distinct项,视图中有嵌套查询,视图来自两个基表(join关联)。

语法格式

CREATE [OR REPLACE] [ALGORITHM={UNDEFIEND | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
创建视图的语句,是由多条子句构成的

参数说明

1、CREATE,表示创建视图的关键字
2、OR REPLACE,如果给定了此子句,表示该语句能够替换已有视图
3、ALGORIGHM,可选参数,表示视图选择的算法
4、UNDEFIEND,表示MySQL将自动选择,所有使用的算法
5、MERGE,表示将使用视图的语句,与视图定义合并起来,使得视图定义的某一部分,取代语句的对应部分
6、TEMPTABLE,表示将视图的结果存入临时表,然后使用临时表执行语句
7、View_name,表示要创建的视图名称
8、Column_list,可选参数,表示属性清单,指定了视图中各个属性的名称,默认情况下,与SELECT语句中查询的属性相同
9、AS,表示指定视图要执行的操作
10、SELECT_statement,是一个完整的查询语句,表示从某个表或视图中查出,某些满足条件的记录,将这些记录导入视图中
11、WITH CHECK OPTION,可选参数,表示创建视图时,要保证在该视图的权限范围之内
12、CASCADED,可选参数,表示创建视图时,需要满足跟该视图有关的,所有相关视图和表的条件,该参数为默认值
13、LOCAL,可选参数,表示创建视图时,只要满足该视图本身定义的条件即可

创建视图时,要求具有针对性视图的CREATE VIEW权限,以及针对由SELECT语句选择的每一列上的某些权限
对于,在SELECT语句中,其他地方使用的列,必须具有SELECT权限,如果,还有OR REPLACE子句,必须在视图上具有DROP权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值