MySQL更新视图

更新视图
是指通过视图,来更新、插入、删除基本表中的数据

因为,视图是一个虚拟表,其中没有数据,所以,当通过视图更新数据时,其实,是在更新基本表中的数据,如果对视图中的数据进行增加,或者删除操作时,实际上是在对其基本表中的数据,进行增加或者删除操作

UPDATE语句

使用UPDATE语句更新视图
MySQL中,可以使用UPDATE语句,更新视图

更新view_stu视图中,chinese字段对应的数据值,将字段值改为100
UPDATE view_stu SET chinese=100;
首先,查看view_stu视图,student表中chinese字段的信息

这里写图片描述

可以看出,view_stu视图和student表中,chinese字段的信息
使用UPDATE语句,更新视图view_stu中的chinese字段值

这里写图片描述

可以看出,view_stu视图和student表中,chinese字段更新为100

这里写图片描述

同时,基本表student中的chinese字段,和基于基本表建立的view_stu2视图中的chin字段的值,都变为100

INSERT语句

使用INSERT语句更新视图
MySQL中,可以使用INSERT语句,向表中插入一条记录

使用INSERT语句,向student表中插入一条数据
其中,s_id字段的值为4,name字段的值为Lily,math字段的值为100,chinese字段的值为100

这里写图片描述

可以看出,已经向student表中,插入了id为4的记录
此时,查看基于student,建立的view_stu2视图中的信息

这里写图片描述

可以看出,在student表中插入数据之后
View_stu2视图中的数据,也随之改变
因此,当基本表中的数据发生变化之后,与基本表对应的视图也会一起改变

DELETE语句

使用DELETE语句更新视图
MySQL中,可以使用DELETE语句,删除视图中的部分记录

使用DELETE语句,在view_stu2视图中删除一条记录
DELETE FROM view_stu2 WHERE math=70;

这里写图片描述

可以看出,view_stu2视图中,删除了math=70的记录
此时,查看student表中的信息

这里写图片描述

可以看出,student表中math=70的记录,也被删除了
因为,视图中的删除操作,最终是通过删除基本表中的记录实现的

注意,虽然视图更新的方式有多种,但是,并不是所有情况下,都能执行视图的更新操作
当视图中包含如下内容时,视图的更新操作不能被执行
1、视图中包含,基本表中被定义为非空的列
2、在定义视图的SELECT语句后的字段列表中,使用了数学表达式
3、在定义视图的SELECT语句后的字段列表中,使用了聚合函数
4、在定义视图的SELECT语句中,使用了DISTINCT、UNION、TOP、GROUP BY或者HAVING子句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值