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

sql更新视图

发布时间: 2023-08-18 12:17:39

‘壹’ 利用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好象不行,需要用到另一语句(忘了,呵呵)

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

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

‘肆’ plsql表更新后视图未更新

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

‘伍’ SQL中视图的创建。修改,删除

1、创建视图

CREATE [OR REPLACE] VIEW 视图名(列1,列2...)

AS SELECT (列1,列2...)

FROM ...;

[WITH [CASCADED|LOCAL] CHECK OPTION]

(5)sql更新视图扩展阅读:

SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。

可以看出标准化的工作是很有意义的。早在1987年就有些有识之士预测SQL的标准化是“一场革命”,是“关系数据库管理系统的转折点”。

数据库和各种产品都使用SQL作为共同的数据存取语言和标准的接口,使不同数据库系统之间的互操作有了共同的基础,进而实现异构机、各种操作环境的共享与移植。

参考资料:网络-SQL

‘陆’ SQL中视图的创建。修改,删除

  • 创建视图

CREATE [OR REPLACE] VIEW 视图名(列1,列2...)

AS SELECT (列1,列2...)

FROM ;

[WITH [CASCADED|LOCAL] CHECK OPTION]

  • 修改视图

CREATE OR REPLACE VIEW 视图名 AS SELECT [ ] FROM [ ];

[WITH [CASCADED|LOCAL] CHECK OPTION]

  • 删除视图

drop view 视图名称

(6)sql更新视图扩展阅读:

  • 查看视图

show tables;

desc 视图名

  • 查看视图定义

show create view 视图名称G

  • 通过视图变更数据

insert into 视图名

update 视图名

[WITH [CASCADED|LOCAL] CHECK OPTION] 决定了是否允许更新数据记录不再满足视图的条件。

local只要满足本视图的条件就可以更新

cascaded则必须满足所有针对该视图的所有视图的条件才可以更新,默认是cascaded。

为了防止通过视图修改导致数据无故丢失,建议加上WITH CHECK OPTION

参考资料来源:网络-SQL语句

‘柒’ sql中修改了基本表的数据视图也会自动随之修改吗

本期我们用 MySQL 提供的 DBUG 工具来研究 MySQL 的 SQL 处理流程。

起手先造个实例

本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来。MySQL 中类似的技术还有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。

这些技术将 MySQL 的不同方向的信息暴露出来,方便大家理解其中机制。

热点内容
苹果耳塞怎么改安卓也能用 发布:2025-02-05 14:50:54 浏览:557
安卓如何鉴别手机真假 发布:2025-02-05 14:28:15 浏览:119
ffmpeglinux编译 发布:2025-02-05 14:28:04 浏览:544
服务器如何做界面 发布:2025-02-05 14:27:23 浏览:290
访问学者单位推荐意见 发布:2025-02-05 14:13:05 浏览:853
微信密码锁忘了怎么办 发布:2025-02-05 14:11:07 浏览:311
web是什么文件夹 发布:2025-02-05 14:11:05 浏览:235
对信访问题调查 发布:2025-02-05 14:09:39 浏览:984
singlephp 发布:2025-02-05 14:09:24 浏览:774
数据库的字段命名规则 发布:2025-02-05 13:53:16 浏览:684