当前位置:首页 » 编程语言 » sql修改视图数据

sql修改视图数据

发布时间: 2022-05-11 08:47:46

A. sql中视图的创建。修改,删除

1、创建视图

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

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

FROM ...;

[WITH [CASCADED|LOCAL] CHECK OPTION]

(1)sql修改视图数据扩展阅读:

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

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

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

参考资料:网络-SQL

B. sql 修改视图

数据库中视图的值只能通过 select语句从一个或多个表中查询出来的结果,并不能修改值。需要修改值还得到视图引用的表中去改

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

对于没有复杂处理的 单表 视图, 是可以 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..com/wangqing999/blog/item/767be28f634ddb00c8fc7aba.html

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

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

D. 利用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语句才能引用可更新的视图。

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

有的可以,有的不可以,视图与表是两个概念,UPDATE视图,实际就是修改了视图对应的表中的数据,自己可以测试一下!但如果视图中没有表(因为有的视图并不一定有表),则不能更新!比如:
create view ass (a, b, c) AS select 0, 's', 0 就不依赖表,当然不能更新,如果在生成视图的SQL语句中有UNION关键字时,也不能更新,其它很多视图是可以更新和修改的,修改的列是对应的表中的列。

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

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

起手先造个实例

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

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

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

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

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

(7)sql修改视图数据扩展阅读

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

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

H. sql 数据库中可以用创建好的视图来修改表的内容吗

只要满足下列条件,即可通过视图修改基础基表的数据:

1、任何修改(包括 UPDATE、INSERT 和 DELETE 语句)都只能引用一个基表的列。

2、视图中被修改的列必须直接引用表列中的基础数据。不能通过任何其他方式对这些列进行派生,如通过以下方式:
1)聚合函数:AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR 和 VARP。
2)计算。不能从使用其他列的表达式中计算该列。使用集合运算符 UNION、UNION ALL、CROSSJOIN、EXCEPT 和 INTERSECT 形成的列将计入计算结果,且不可更新。

3、被修改的列不受 GROUP BY、HAVING 或 DISTINCT 子句的影响。

4、TOP 在视图的 select_statement 中的任何位置都不会与 WITH CHECK OPTION 子句一起使用。

上述限制适用于视图的 FROM 子句中的任何子查询,就像其应用于视图本身一样。通常情况下,数据库引擎必须能够明确跟踪从视图定义到一个基表的修改

I. 对sql视图进行修改时是否会改变基本数据表数据

会的。

视图只是数据库在磁盘上的一个缩小范围的逻辑影像,任何修改都会修改到基本数据表的。

热点内容
房产证加密码 发布:2025-05-11 02:49:17 浏览:340
服务器少个阵列卡盘符怎么找出来 发布:2025-05-11 02:34:07 浏览:635
斗地主源码开发 发布:2025-05-11 02:24:07 浏览:366
云服务器怎么设置攻击 发布:2025-05-11 02:22:09 浏览:826
python嵌套for循环 发布:2025-05-11 01:51:44 浏览:228
安卓怎么取消后台限制 发布:2025-05-11 01:45:45 浏览:258
一键搭建sk5服务器 发布:2025-05-11 01:40:09 浏览:514
鸿业acs加密锁模拟器 发布:2025-05-11 01:38:49 浏览:938
神庙逃亡2安卓版怎么玩 发布:2025-05-11 01:38:05 浏览:163
凯杰都什么配置 发布:2025-05-11 01:38:04 浏览:472