精华内容
下载资源
问答
  • 在表的数据表视图中可以
    千次阅读
    2021-01-21 08:40:31

    如果你那个视图,是 单表的, 没写 触发器的。

    那么 如果 删除视图中的数据 成功了,那么 表中的数据 就被删除了。

    如果那个视图, 写了个 INSTEAD OF 触发器. 但是里面没有任何删除的动作。

    那么 可能你 DELETE FROM 视图, 最后表的数据,一点也没变化, 也是可以的。

    1> CREATE VIEW v_main_sub AS

    2> SELECT

    3> test_main.id AS main_id,

    4> test_main.value AS main_value,

    5> test_sub.id AS sub_id,

    6> test_sub.value AS sub_value

    7> FROM

    8> test_main, test_sub

    9> WHERE

    10> test_main.id = test_sub.main_id;

    11> go

    1> SELECT * FROM v_main_sub;

    2> go

    main_id main_value sub_id sub_value

    ----------- ---------- ----------- ----------

    1 ONE 1 ONEONE

    2 TWO 2 TWOTWO

    (2 行受影响)

    1> UPDATE v_main_sub

    2> SET main_value='ONX'

    3> WHERE main_id = 1;

    4> go

    (1 行受影响)

    1> UPDATE v_main_sub

    2> SET sub_value='ONXONX'

    3> WHERE main_id = 1;

    4> go

    (1 行受影响)

    1> DELETE FROM v_main_sub WHERE main_id = 1;

    2> go

    消息 4405,级别 16,状态 1,服务器 GMJ-PC\SQLEXPRESS,第 1 行

    视图或函数 'v_main_sub' 不可更新,因为修改会影响多个基表。

    1> CREATE TRIGGER v_main_sub_trigger

    2> ON v_main_sub

    3> INSTEAD OF DELETE

    4> AS

    5> DECLARE

    6> @main_id INT,

    7> @sub_id INT;

    8> BEGIN

    9> SELECT @main_id=main_id, @sub_id=sub_id FROM deleted;

    10>

    11>

    12> PRINT(@main_id);

    13> PRINT(@sub_id);

    14> END;

    15> go

    1> DELETE FROM v_main_sub WHERE main_id = 1;

    2> go

    1

    1

    (1 行受影响)

    1> DELETE FROM v_main_sub WHERE sub_id = 1;

    2> go

    1

    1

    (1 行受影响)

    对于多表关联的视图, 删除的时候,需要人为的去判断

    例如当 主表 和 子表,都只有一条记录的情况下。

    无法判断 本次删除, 是要删除掉一个子表的记录,留下主表的。

    还是 主表 子表的数据,一同删除。

    取消

    评论

    更多相关内容
  • 怎么更新Mysql数据表视图中数据

    千次阅读 2021-02-03 07:16:30
    本篇文章主要给大家介绍mysql数据表视图中数据的更新操作。相关mysql视频教程推荐:《mysql教程》mysql数据表视图的定义及相关操作,如查询、修改、删除、添加等操作介绍,我们近期发布的文章中,已经给大家详细...

    本篇文章主要给大家介绍mysql数据表中视图中数据的更新操作。

    相关mysql视频教程推荐:《mysql教程》

    mysql数据表视图的定义及相关操作,如查询、修改、删除、添加等操作介绍,在我们近期发布的文章中,已经给大家详细讲解过了,这里就不一一为大家介绍了。需要了解的新手朋友们,可以参考一下相关文章。

    本节主要内容是视图的更新操作,所谓更新操作就是指通过视图,来更新(更改、替换...)基本表中的数据。由于视图是一个虚拟表,其中没有真实存在的数据,所以,当我们通过视图来更新数据时,实际上是在更新mysql基本表中的数据,比如对视图进行增删改操作也就是对基本表数据进行增删改操作,只不过视图的操作会有一定的限制。

    下面我们就结合简单的示例,继续为大家介绍mysql数据表视图更新数据的相关操作。

    怎么更新Mysql数据表视图中数据?

    首先我们可以先查询出单表视图数据(my_v1)。如下图中显示my_v1存在六条数据。

    a99b55ec3458ba8544ce1f2960793c22.png

    然后我们通过update语句对my_v1中的数据进行更新,这里我们将id为3的namename字段值从“232”更新为“oyk”。

    7375e5768f7a4565ec9b0c0afc48b70f.png

    如图query OK表示更新成功,我们可以通过Navicat查看是否更新成功。

    56232e0d3d115430668279fe66c3d4ed.png

    如图,单表视图my_v1中的数据成功被更新了。

    注意:

    不是所有的视图都可以被执行更新操作。基本表的行列子集视图一般是可更新的。但是如果视图的属性来自集合函数,表达式,则该视图肯定是不可以更新的,并且若视图是由两个以上的基表导出的,此视图通常情况下是不允许更新的!

    本篇文章就是关于mysql数据表中视图数据的更新操作介绍,简单易懂,希望对需要的朋友有所帮助!

    想要了解更多mysql知识,可以关注PHP中文网mysql视频教程,欢迎大家参考学习!

    展开全文
  • 怎么修改Mysql数据表中视图

    千次阅读 2021-01-21 06:46:38
    本篇文章主要给大家介绍mysql数据表中怎么进行修改视图的操作。关于mysql视图的基础知识,之前的文章也给大家详细介绍过了。这里我们再给大家先简单介绍下mysql视图。通俗的说,视图是由SELECT语句组成的查询...

    本篇文章主要给大家介绍mysql数据表中怎么进行修改视图的操作。

    关于mysql视图的基础知识,在之前的文章中也给大家详细介绍过了。这里我们再给大家先简单介绍下mysql视图。

    通俗的说,视图是由SELECT语句组成的查询定义的虚拟表,也就是由一张或多张表中的数据组成的。

    视图就如同mysql基本表一样,对表能够进行的一般操作都可以应用于视图,比如创建,查询,插入,修改,删除操作等。

    那么关于视图的创建、查询,在这两篇文章也已经给大家介绍过了,需要的朋友可以参考。

    下面我们就结合简单的示例给大家继续介绍mysql视图的修改操作。

    其实视图的修改就相当于SQL语句的修改。

    首先我们可以通过cmd命令行工具连接mysql数据库。

    然后可以先通过图文版的Navicat数据库管理工具,更直观方便的来查看指定数据表my_v1视图的信息。

    8e0400fcd2c3a17f2575b6af9483d55d.png

    如上图中,my_v1视图中包含三个字段id,name,c_id。

    修改视图的语法:alter view +视图名 as + 新的select 语句

    修改视图语法示例如下:alter view my_v1 as select id,name from stu;

    b294b4e1f31ee69c87df648e863b72bd.png

    这里我们通过命令行工具对my_v1这张视图进行了修改,重新从stu表中查询两个字段id,name。

    最后我们再通过Navicat查看my_v1视图是否被修改了数据。

    e4ea7e8e6fca44f024a89973fe3db94d.png

    如图,my_v1视图中已经只能查看到id和name这两个字段了,说明我们已经对视图成功进行修改操作了。

    注意:通常情况下,已创建好的视图,尽量不要再去进行修改,避免数据丢失。

    本篇文章就是关于mysql数据表中视图的修改操作介绍,也是很简单易懂的,希望对需要的朋友有所帮助!

    想要了解更多mysql知识,可以关注PHP中文网mysql视频教程,欢迎大家参考学习!

    展开全文
  • d:开启各个调试点的输出O,/tmp/mysqld.trace:将调试结果输出到指定文件请点击输入图片描述然后我们创建了一张,来看一下调试的输出结果:请点击输入图片描述可以看到 create table 的过程,MySQL 的一些细节...

    d:开启各个调试点的输出

    O,/tmp/mysqld.trace:将调试结果输出到指定文件

    fe443fa89366f48e8012952764816798.png

    请点击输入图片描述

    然后我们创建了一张表,来看一下调试的输出结果:

    9a74f07efa3f261987fbb885fd5921c9.png

    请点击输入图片描述

    可以看到 create table 的过程中,MySQL 的一些细节操作,比如分配内存 alloc_root 等

    这样看还不够直观,我们增加一些信息:

    07147a3ec97321629aec948dea992e58.png

    请点击输入图片描述

    来看看效果:

    1f52ec1bf899b535ca98118a2df08558.png

    请点击输入图片描述

    可以看到输出变成了调用树的形式,现在就可以分辨出 alloc_root 分配的内存,是为了解析 SQL 时用的(mysql_parse)

    我们再增加一些有用的信息:

    0f02bbd65145b92e243b29b3c38561c8.png

    请点击输入图片描述

    可以看到结果中增加了文件名和行号:

    d495a718cec097dea9c3442d2d52651c.png

    请点击输入图片描述

    现在我们可以在输出中找一下统计表相关的信息:

    b9e15fd9f91061c2fde7b6686963584e.png

    请点击输入图片描述

    可以看到 MySQL 在这里非常机智,直接执行了一个内置的存储过程来更新统计表。

    沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些:

    93bda55b38617b4c9b1c7f93fe122a18.png

    请点击输入图片描述

    9a63a13aa1a1b3d4741fd14820b05281.png

    请点击输入图片描述

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

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

    展开全文
  • sql在视图中如何插入新的数据

    千次阅读 2021-01-26 22:47:44
    展开全部对于 单视图, 插入/修改 数据是没有问题的。 (只要你不做特别的设32313133353236313431303231363533e59b9ee7ad9431333365653330置)对于多视图, 操作的时候,会存在一定的问题。下面是一个例子:1&...
  • Oracle中向视图中插入数据的方法

    千次阅读 2021-05-01 10:25:49
    如果视图是基于一个基础产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在视图上进行,INSERT,UPDATE,DELETE的操作.2.如果是连接视图,那就要遵守基本更新准则了.现在我只对INSERT...
  • 如何查询mysql数据表中视图

    千次阅读 2021-01-18 20:42:56
    本篇文章主要给大家介绍怎么查询mysql数据表中视图。想必大家如果有看过之前的mysql视图相关的文章,都已经对视图的基本概念有一定的了解了。视图也就是是一个虚拟,其内容由查询定义。同真实存在数据的mysql...
  • 怎么向Mysql视图中增加新数据

    千次阅读 2021-01-26 22:47:43
    从前面文章的介绍,大家应该都知道了视图就是由SELECT语句组成的查询定义的虚拟,是由一张或多张表数据组成的,从数据库系统外部来看,视图就如同一张数据表一样,对表能够进行的一般操作都可以应用于视图,...
  • 视图中插入数据

    千次阅读 2020-12-22 08:54:53
    (2)由于视图只引用中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些中并未引用的字段,必 须知道没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列...
  • 数据表视图:修改数据表

    千次阅读 2021-03-16 10:50:58
    MySQL,ALTER 语句用来修改数据表名称或者数据表字段名称。也可以用来添加或者删除数据表字段。ALTER 语句经常和"ADD", "DROP" and "MODIFY" 命令一起使用。1) 添加列通用语句:ALTERTABLEtable_nameADDnew_...
  • 视图可以修改数据吗?

    千次阅读 2021-04-30 10:43:49
    视图中使用DML的规定:l可以在简单视图中执行DML 操作l当视图定义中包含以下元素之一时不能使用delete:组函数GROUPBY子句DISTINCT 关键字ROWNUM 伪列当视图定义中包含以下元素之一时不能使用update :l组函数lGROUP ...
  • 新的数据库创建一个和视图结构相同的 采用ezdw,反向导入视图,但是数据结构和新创建的描述不同,生成会报错,手动修改字符类型的数据库字段 配置streamSets 源数据控件 ry视图 简单清洗 是否...
  • 数据表视图中可以进行字段的编辑、添加、删除,记录的删除和数据查找等操作,但使用“数据表”视图建立的结构,只说明了中字段名,却没有说明每个字段的数据类型和属性值,也无法修改。相关介绍:视图是从...
  • 数据库中视图和基本的区别

    千次阅读 2022-02-10 18:33:59
    1、视图和的区别? 视图是虚拟的,视图展示的数据来自于 ...若视图中的字段数据是来自于基表的话,一般是可以视图中数据 进行更新的,对视图数据进行添加、删除和修改操作会直接影响基本。其他情况不允许更新
  • mysql多查询并创建视图

    千次阅读 2021-01-19 03:03:04
    匿名用户1级2016-12-03 回答MySQL在多个数据表上创建视图在MySQL,使用CREATE VIEW语句也可以在两个或两个以上的数据表上创建视图。实例在department和worker上创建一个名为worker_view1的视图。1. 创建视图的...
  • SQL中数据查询及视图

    千次阅读 多人点赞 2020-04-07 17:14:03
    数据查询 语句格式 SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>] … FROM <表名或视图名>[,<表名或视图名> ]…|(SELECT 语句) [AS]<别名> [ WHERE <条件表达式> ] ...
  • 在数据表中添加或删除一列

    千次阅读 2021-02-02 06:04:06
    可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。Access 提供了多种在数据表中添加或删除列的方法。 你可以使用数据表视图来添加或删除列,并设置这些列的数据类型。 此外...
  • hive的分区视图

    千次阅读 2022-03-28 21:01:57
    hive视图
  • 基于以上逻辑,就有必要整理出一份完整的物料主数据视图与其维护标识间的关系;笔者自行摸索找到后台配置及前台事务MM50; 针对两个地方的相应数据进行复制,并粘贴到EXCEL,最终制作了一张简如下 ...
  • Sql Server 视图数据的增删改查教程

    千次阅读 2021-02-02 12:08:00
    因此数据库中只存在视图的定义,而不存在视图中相对应的数据数据仍然存放原来的基本中。视图是一种逻辑对象。二、 视图能做什么导出数据导出数据时,常常需要多个联合查询,这个时候就可以使用视图;...
  • 视图的区别和联系

    千次阅读 2020-12-19 20:53:09
    数据库数据都是存储在表中的,而视图只是一个或多个表依照某个条件组合而成的结果集,一般来说你可以用update,insert,delete等sql语句修改表数据,而对视图只能进行select操作。但是也存在可更新的视图,...
  • 那么 如果 删除视图中数据 成功了,那么 中的数据 就被删除了。如果那个视图, 写了个 INSTEAD OF 触发器. 但是里面没有任何删除的动作。那么 可能你 DELETE FROM 视图, 最后数据,一点也没变化, 也是可以...
  • 数据库视图数据是否可以直接删除

    千次阅读 2021-03-25 09:47:36
    数据库视图数据是否可以直接删除 文章目录数据库视图数据是否可以直接删除一、视图是什么?二、视图数据删除1.多构成视图数据删除2.单表视图数据删除总结 一、视图是什么? 视图(VIEW)也被称作虚,即虚拟的...
  • 视图并不数据库实际存在,行和列数据来自定义视图的查询总使用的,并且是使用视图时动态生成的。视图相对于普通的优势:简单:使用视图的用户完全不需要关系后面对应的结构、关联条件和筛选条件,对用户...
  • 如何向视图插入数据

    千次阅读 2021-01-19 01:05:33
    接下来通过check约束来实现 --先删除原来的主键,因为分区列必须包含主键 alter table t1 drop constraint PK__t1__3213E83F7F60ED59 --可以不加check约束,但会导致查询优化器必须要搜索所有的 --加了check约束...
  • 数据表的定义3. 临时4. 分区5. 视图5.1 普通视图5.2 物化视图 1. 数据库 语法: create database if not exists db_name engine = engine_name on cluster cluster_name drop database if exists db_name on ...
  • 数据库视图 sql

    千次阅读 2021-01-28 08:08:21
    视图(有时为与视图区别,也称为基本——Base Table)不同,视图所对应的数据不进行实际存储,数据库只存储视图的定义,视图数据进行操作时,系统根据视图的定义去操作与视...文章萌萌怪兽2020-02-...
  • MySQL的视图view,视图创建后,会随着的改变而自动改变数据 1、首先是创建视图 CREATE **ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER** VIEW tge_view AS SELECT corpName, phone FROM ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 991,995
精华内容 396,798
热门标签
关键字:

在表的数据表视图中可以