当前位置:首页 » 编程语言 » sql视图刷新

sql视图刷新

发布时间: 2022-10-22 06:04:40

sql中如果修改了基本表的数据,视图也会自动随之修改吗

如果改动了基本表,视图来源于这个基本表,那视图给呈现的结果也会随之发生变化。因为视图是一个虚拟表,其内容有查询定义。视图中的数据是由一张或多张表中的数据组成的。

view还是materialized view,如果是前者肯定会修改,因为view只是个sql,查询的还是基本表,后者需要定制刷新,才会自动修改。

(1)sql视图刷新扩展阅读

SQL语言主要是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。

具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

② 利用sql语句如何更新视图

更新视图有以下三条规则:
(1) 若视图是基于多个表使用联接操作而导出的,那么对这个视图执行更新操作时,每次只能影响其中的一个表。
(2) 若视图导出时包含有分组和聚合操作,则不允许对这个视图执行更新操作。
(3) 若视图是从一个表经选择、投影而导出的,并在视图中包含了表的主键字或某个候选键,这类视图称为‘行列子集视图’。对这类视图可执行更新操作。

视图只有满足下列条件才可更新:
1、select语句在选择列表中没有聚合函数,也不包含TOP,GROUP BY,UNION(除非视图是分区视图)或DISTINCT子句。聚合函数可以用在FROM子句的子查询中,只要不修改函数返回的值。
2、select语句的选择列表中没有派生列。派生列是由任何非简单列表达式(使用函数、加法或减法运算符等)所构成的结果集列。
3、select语句中的FROM子句至少引用一个表。select语句不能只包含非表格格式的表达式(即不是从表派生出的表达式)。
4、INSERT,UPDATE和DELETE语句在引用可更新视图之前,也必须如上述条件指定的那样满足某些限制条件。只有当视图可更新,并且所编写的UPDATE或INSERT语句只修改视图的FROM子句引用的一个基表中的数据时,UPDATE和INSERT语句才能引用视图。
只有当视图在其FROM子句中只引用一个表时,DELETE语句才能引用可更新的视图。

③ SQL语言视图更新

INSERT语句向视图插入数据,但应该注意的是:插入的数据实际上存放在基表中,而不是视图中;
updare好象不行,需要用到另一语句(忘了,呵呵)

④ plsql表更新后视图未更新

plsql表更新后视图未更新,可能是不汇总或数据被加工过
一般来说,通过视图进行数据更新(INSERT、UPDATE、DELETE),只要该视图是单纯的SELECT语句定义的视图即可。也就是说,如果是不汇总或数据被加工过而是直接显示数据的视图,一般可以通过该视图来更新数据。在这种情况下,在数据库侧,将针对视图的DML语句(INSERT、UPDATE、DELETE)自动转换成表的DML语句,来更新数据。
但是,对于定义的复杂视图,DML语句无法在数据库侧转换成表的DML语句,因此会发生错误。这种情况下如果在数据库侧无法转换成表的DML语句,我们也可以通过开发者准备的程序,转换成表的DML语句,也可以实现对视图的DML。那就是“INSTEAD OF 触发器”

⑤ 在SQL 里哪些视图可以更新,哪些不可以更新。(要写500字的论文)希望提供全面一点的~

视图一般式可以更新的,但前提是不能有聚合函数或分组等。
在这个前提下:
1:简单视图
就是由一个表生成出来的视图,这种情况你更新她就和更新表一样
2:二次加工出来的简单视图
仍然是一个表出来的视图,但是视图中存在通过函数或计算二次加工出来的其他字段。更新的时候只要不更新这些加工出来的字段也是可以更新的。
3:组合视图
通过表之间关联联合等出来的复杂视图。这种视图更新的时候要注意你所更新的列要来自同一个表,也是可以更新的。
4:静态视图
这种视图等同于表可以直接更新,但是更新的数据尽在视图中反映出来,不反映到原表
5:其他视图
通过表函数等其他生成的更为复杂的视图。一般不可更新

⑥ 如何在线修改全刷新的物化视图的底层SQL

如何在线修改全刷新的物化视图的底层SQL
当你CREATE OR REPLACE VIEW SOME_VIEW AS SELECT ... 时,如果结构不变,物化视图及其依赖对象不会失效。但这不能用于快速刷新的物化视图。

-- 建立测试环境:
CREATE TABLE T (ID NUMBER PRIMARY KEY);

INSERT INTO T VALUES (1);
INSERT INTO T VALUES (2);

⑦ sql中如果修改了基本表的数据,视图也会自动随之修改吗

1、首先在电脑中登录PL/SQL Developer,如下图所示。

⑧ sql server2008 更新视图怎么更新

在之前视图的那代码中添加自己想要的那天列,然后重新执行生成一不就可以了吗?
例如之前的是:
Create VIEW SHITU1 AS SELECT 工资 from dbo.sheet2$
你可以这样修改加入列“姓名”后再执行一次:
Create VIEW SHITU1 AS SELECT 姓名, 工资 from dbo.sheet2$

⑨ SQL视图 更新问题

视图本身是不保存数据的,每次对视图查询,会直接连到表上查询
但是你这个问题,要根据你的视图语句来做具体判断的
比如视图里有where条件,有group by等聚合函数等的话,原表数据变化了,视图的数据也有可能不变化。
举个例子吧:
A表
id type name
1 aa 张三
2 bb 李四

如果视图是:
create view v_tab
as
select * from a where type = 'aa'

那这样的话,在a表里如果插入一条type = ‘bb’的数据,视图的数据就不会有变化
不知道这样描述楼主清楚没

⑩ 如何在线修改全刷新的物化视图的底层SQL

如何在线修改全刷新的物化视图的底层SQL
物化视图建立的时候可以定义刷新方式,一般有: refresh fast 和 refresh complete之分,前者是只更新主表中变化的记录(主表必须建立materialized view log),而后者是把MV里面的数据全部更新。此外,更新方式还可以有:on demand, on commit, on force之分. on commit是及时更新。其实用户创建materialized view的时候可以指定更新频率,给你个例子

CREATE Materialized View mv_terminal
REFRESH FAST
NEXT SYSDATE + 30/(24*60)
AS
SELECT * FROM ........
这个MV每30分钟刷新一次,只刷新改变的数据

热点内容
请密码不叫什么说话 发布:2025-07-10 10:06:22 浏览:112
苹果应用怎么设置密码 发布:2025-07-10 10:04:00 浏览:838
雪国脚本 发布:2025-07-10 10:04:00 浏览:937
编程让 发布:2025-07-10 09:48:13 浏览:359
数据库逻辑存储结构 发布:2025-07-10 09:26:56 浏览:920
密码编译找规律 发布:2025-07-10 09:18:10 浏览:512
电影视频缓存后 发布:2025-07-10 09:16:48 浏览:894
服务器搭建需要哪些东西 发布:2025-07-10 09:15:23 浏览:803
无限密码怎么改 发布:2025-07-10 09:14:32 浏览:106
coc按键精灵脚本 发布:2025-07-10 09:12:40 浏览:313