SQL数据库里是否可以通过视图更改表中的数据?

SQL数据库里是否可以通过视图更改表中的数据?,第1张

对于没有复杂处理的 单表 视图, 是可以 UPDATE 的。

例如这样的视图:

CREATE VIEW v_1 AS SELECT * FROM 某表。

但是假如你的视图, 是单表的, 带统计的, 那恐怕是不能 直接 UPDATE 了。

例如这样的视图:

CREATE VIEW v_2 AS SELECT id, COUNT(*) as num FROM 某表--前面是单表的, 下面说多表的 ---

对于2张表的,假如你的查询里面, 这2张表是 一对一的关系。 且视图里面, 包含了主键,那么是可以 UPDATE 的。

例如下面这样的视图:

CREATE VIEW temp_view AS

SELECT

t1.name AS t1Name,

t1.age AS t1Age,

t2.name AS t2Name,

t2.age AS t2Age

FROM

t1, t2

WHERE

t1.name = t2.name

然后直接更新视图。

UPDATE temp_view SET t1Age = t2Age

完整的例子, 可参考:

http://hi.baidu.com/wangzhiqing999/blog/item/767be28f634ddb00c8fc7aba.html

但是假如你的视图里面的 2个表, 不是一一对应的。

或者是带了 SUM / COUNT 等统计函数的, 那么可能是没办法更新了。

数据库报表的视图共有四种:报表视图、打印预览视图、布局视图和设计视图。

1、报表视图用于显示报表的实际效果,但不分页。

2、打印预览视图用于显示报表的分页打印效果。

3、布局视图用于显示报表的实际效果,可直接进行修改。

4、设计视图用于创建或修改已有的报表。

视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式,可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。

视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表,一个视图也可以从另一个视图中产生。

扩展资料:

视图可以在以下几个方面使程序与数据独立:

1、如果应用建立在数据库表上,当数据库表发生变化时,可以在表上建立视图,通过视图屏蔽表的变化,从而应用程序可以不动。

2、如果应用建立在数据库表上,当应用发生变化时,可以在表上建立视图,通过视图屏蔽应用的变化,从而使数据库表不动。

3、 如果应用建立在视图上,当数据库表发生变化时,可以在表上修改视图,通过视图屏蔽表的变化,从而应用程序可以不动。

4、如果应用建立在视图上,当应用发生变化时,可以在表上修改视图,通过视图屏蔽应用的变化,从而数据库可以不动。

参考资料来源:百度百科--数据库视图

当然会影响到基表。

视图能对查询出来的记录进行修改,并将修改后的数据回送到源表中。

如果是在vfp中,只要在视图设计器的“更新条件”选项卡中选中“发送SQL更新”,就可将修改后的数据回送到源表中。否则,数据不回送。

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

当建立视图时使用的表中的数据发生了改变后,视图中的数据也会发生相应的改变,视图本身是不能执行添加,删除,修改的!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6799184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存