对于没有复杂处理的 单表 视图, 是可以 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更新”,就可将修改后的数据回送到源表中。否则,数据不回送。
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
当建立视图时使用的表中的数据发生了改变后,视图中的数据也会发生相应的改变,视图本身是不能执行添加,删除,修改的!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)