首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL视图更新

昨天在写美团2019秋招笔试题的时候遇到了关于视图是否能更新的问题,突然感觉这个问题之前复习的时候重点关注过,但是却又想不全。今天特地搜了一些资料总结一下。...本文主要说明视图更新限制,如需关于视图的更多知识,参考:MySql视图原理讲解与使用大全 视图简介 视图不是表,不能直接存储数据,是一张虚拟的表,视图和数据库的表存在着对应的关系,我们在某些情况下是可以通过视图来操作数据库的表...一般情况下,最好将视图作为查询数据的虚拟表,而不要通过视图更新数据。因为,使用视图更新数据时,如果没有全面考虑在视图更新数据的限制,就可能会造成数据更新失败。...WITH[CASCADED|LOCAL] CHECK OPTION能不能决定视图是否能更新? 这两个参数的基本定义如下: LOCAL参数表示更新视图时只要满足该视图本身定义的条件即可。...option,要保证insert后,数据要被视图查询出来 对于没有where 子句的视图,使用with check option是多余的 本文参考:MySql视图原理讲解与使用大全 和之前视图学习笔记

3.2K30

MySQL更新视图

更新视图是指通过视图,来更新、插入、删除基本表中的数据。视图是一个虚拟表,即对视图更新,实质上是更新基表。但是视图的构造很多时候是由多个表连接查询,以及结合聚合函数,分组过滤等等定义的。...对于这类的视图,想要去更新,恐怕就显得力不从心了。因为涉及到多张表。本文简要描述可更新视图的特点并给出演示。...一、不带check option更新 -- 当前环境 mysql> show variables like 'version'; +---------------+--------+ | Variable_name...,值符合过滤条件 INSERT INTO vw_items_check3 VALUES (NULL, 'iPhone3', 800.50); -- 下面使用一个不符合预期的值进行插入 -- 基于视图vw_items_check2...then checking recurses to underlying views, and applies the same rules. */ 七、结论: 1、不使用check子句情形,可以对视图进行

1.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySqlMySql视图

    视图概念 视图就是一张虚拟表,其内容由查询定义。与真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化影响到基表,基表的数据变化也会影响到视图。...基本使用 创建视图 create view 视图名 as select语句; 举例子:内连接emp表与dept表,然后创建视图myview,sql语句如下: create view myview as...select ename,dname from emp inner join dept on emp.deptno=dept.deptno; 进行查看:此时表myview的数据如下 myview说白了就是把...的视图 drop view myview; 视图规则和限制 与表一样,必须唯一命名(不能出现同名视图或表名) 创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响 视图不能添加索引,也不能有关联的触发器或者默认值...视图可以提高安全性,必须具有足够的访问权限 order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖 视图可以和表一起使用

    23320

    MySQL插入重复后进行覆盖更新

    MySQL插入重复后进行覆盖更新 一、介绍 在MySQL中,常常会有唯一键的约束,当使用Java插入重复的值后,会报异常我们需要进行捕获处理。...上面的解决思路,确实是一种办法,但我将介绍一下MySQL的一种插入写法,可以解决这种插入重复数据的问题。...COMMENT '创建用户', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间...', `update_user_id` int(11) DEFAULT NULL COMMENT '更新用户', PRIMARY KEY (`id`), UNIQUE KEY `unique_idCard...三、最后 以上,就是在MySQL中,插入时发生唯一键约束后的简单处理。 当然了,这种处理比较简单,只适合单表。 如果异常有涉及多表的处理的话,那还是老老实实捕获异常吧。 我是半月,你我一同共勉!!!

    52220

    MySQL 视图

    大多数数据库管理系统(包括MySQL)允许您通过具有一些先决条件的数据库视图更新基础表中的数据。 数据库视图是动态的,因为它与物理模式无关。...03.视图中存放的数据其实就是对真实表的引用!      对视图中的数据进行添加,更新删除都会影响到真实的表!    04.一个真实的表可以创建N个视图!   ...05.如果视图关联了多表,不允许增 删!单表可以增删改    06.视图一般都是使用查询!...2)视图可以嵌套 3)update,insert,delete不能封装成视图内容,通过图形化界面可以操作数据(操作视图数据,影响的是基本表)。...`studentNo` --  查询视图中的内容 SELECT * FROM view_student_result -- 查询mysql数据库中所有的视图 SELECT * FROM information_schema.views

    3.1K110

    MySQL视图

    视图是关系型数据库重要的组成部分之一,它可以限制数据访问,简化复杂查询,保持数据的独立性,以及基于相同的数据提供不同的视图等等。本文介绍MySQL数据库视图的一些用法,供大家参考。...在标准SQL之上的扩展 视图名称后的列可自定义,可省略 with check option,该选项用于在配置可更新视图时,新增和更新后的数据应能满足视图定义的sql语句过滤条件,确保后续仍可查询到这些记录...二、简单视图特点 单表查询 不包含相关聚合函数 不包含分组 可通过DML语句更新视图 --1、 请创建一个视图返回更新日期为大于2016-02-15之后客户信息 -- 当前版本 mysql...,要求按客户地区进行分组,统计各个地区用户总数 CREATE VIEW vw_cust_sun AS SELECT d.district, sum(c.customer_id) sum_cust...-- 查看视图 mysql> show full tables mysql> show full tables like '%vw%'; -- 提取视图DDL mysql> show create

    2.9K20

    MySQL 视图

    ​看到这里,或许你已经对MySQL 的基本操作了如指掌,这篇文章讲解MySQL高级功能中 视图的概念及其用法。 什么是视图 ( view ) ?...视图可以连接一个或多个数据表的部分字段,也可以针对不同的用户创建不同的查询视图视图的地位 如何创建视图 ?...* FROM 视图名; 嵌套视图 创建好一张视图之后,还可以在它的基础上继续创建视图 修改视图 #在创建视图时加上 or replace ,即视图存在则替换,否则创建CREATE or replace...(字段2) 视图的优点 安全性:虚拟表是基于底层数据表的,我们在使用视图时,一般不会轻易通过视图对底层数据进行修改 简单清晰:视图是对 SQL 查询的封装,它可以将原本复杂的 SQL 查询简化,这样就好比我们在进行模块化编程一样...另外,我们也需要了解到视图是虚拟表,本身不存储数据,如果想要通过视图对底层数据表的数据进行修改也会受到很多限制,通常我们是把视图用于查询。

    2.9K40

    MySQL 视图

    看到这里,或许你已经对MySQL 的基本操作了如指掌,这篇文章讲解MySQL高级功能中 视图的概念及其用法。 什么是视图 ( view ) ?...: SELECT * FROM 视图名; 嵌套视图 创建好一张视图之后,还可以在它的基础上继续创建视图 修改视图 #在创建视图时加上 or replace ,即视图存在则替换,否则创建 CREATE...视图名; #结果:字段1(字段2) 视图的优点 安全性:虚拟表是基于底层数据表的,我们在使用视图时,一般不会轻易通过视图对底层数据进行修改 简单清晰:视图是对 SQL 查询的封装,它可以将原本复杂的...SQL 查询简化,这样就好比我们在进行模块化编程一样,不仅结构清晰,还提升了代码的复用率。...另外,我们也需要了解到视图是虚拟表,本身不存储数据,如果想要通过视图对底层数据表的数据进行修改也会受到很多限制,通常我们是把视图用于查询。

    2.8K20

    MySQL视图

    一.视图的概念 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。 注:基表就是我们创建的表。...准备工作 以员工表和部门表作为基表: 将其机进行内连接,并筛选ename和dname字段: 我们如果想高频的取查询一条数据中的ename和dname,每次都进行内连接会很麻烦,因此我们可以将上图中最下面的查询结果当做一张视图...修改视图 update myview set ename='smith' where ename='SMITCH'; 修改视图也会影响原始数据,即影响基表: 反过来也一样,修改基表也会影响视图,实际上视图与基表是连通的...创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响。 视图不能添加索引,也不能有关联的触发器或者默认值。 视图可以提高安全性,必须具有足够的访问权限。...order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖。 视图可以和表一起使用。

    16330

    mysql视图

    Mysql中通过create or replace view语句和alter语句来修改视图 1、使用create or replace view语句修改视图 首先通过desc查看修改之前的视图,方便比较...2、使用alter语句修改视图view_t alter view view_t as select quantity from t; 六、更新视图   更新视图是指通过视图来插入、更新、删除表中的数据...通过视图更新的时候都是转到基本表上进行更新的,对视图增加或者删除记录,实际上是对其基本表增加或者删除记录。...1、使用UPDATE语句更新视图view_t update view_t set quantity=5; 更新之前先查看基本表和视图的信息 执行更新并查看视图和基本表的内容   对视图...同样,当对基本表t更新后,另一个视图view_t2的内容也会更新

    2.3K40

    Mysql视图

    安全性:更方便的进行权限控制。 逻辑数据独立性:屏蔽真实表结构变化带来的影响。...TEMPTABLE:先将select_statement的查询结果存入临时表,然后用 临时表进行查询。 DEFINER:可选,表示定义视图的用户,与安全控制有关,默认为当前用户。...WITH CHECK OPTION:可选,用于视图数据操作时的检查条件。若省略此子句,则不进行检查。 取值: CASCADED:默认,操作数据时要满足所有相关视图和表定义的条件。...例如,当在一个视图的基础上创建另一个视图时,进行级联检查。 LOCAL:操作数据时满足该视图本身定义的条件即可。...使用方法如下图所示: #删除视图 mysql> DROP VIEW view_goods; Query OK, 0 rows affected (0.00 sec) #检查视图是否已被删除 mysql>

    2.5K10

    Mysql资料 视图

    一.简介 视图是数据库中的一个虚拟的表是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。 但是,视图并不在数据库中以存储的数据值集形式存在。...行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表。 二.例子 有一个表s1,里面存储了id,name,age。...一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。...可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 四.工作机制 当调用视图的时候,才会执行视图中的sql,进行取数据操作。...视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。 视图这样设计有什么好处?

    2K20

    Mysql概念--视图

    WITH [CASCADED | LOCAL] CHECK OPTION]:表示视图更新时保证在视图的权限范围之内 cascade是默认值,表示更新视图的时候,要满足视图和表的相关条件 local...1、CREATE OR REPLACE VIEW语句修改视图 基本格式: create or replace view view_name as select语句; 在视图存在的情况下可对视图进行修改...,当基表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间一致 3、DML操作更新视图 因为视图本身没有数据,因此对视图进行的dml操作最终都体现在基表中 mysql> create view...-----+---------+----------+-----------+------------+----------+3 rows in set (0.02 sec) 此时,使用update对视图进行修改...check option约束限制,保证更新视图是在该视图的权限范围之内。

    4.1K20

    MySQL基础-视图

    文章目录 MySQL基础-视图 一、数据库对象 二、视图概念 三、视图的使用 1、创建视图 2、查看视图 3、修改视图 4、修改/删除视图 四、总结 MySQL基础-视图 一、数据库对象 对象 描述...MySQL支持使用INSERT、UPDATE和DELETE语句对视图中的数据进行插入、更新和删除操作。...注:要使视图更新视图中的行和底层基本表中的行之间必须存在 一对一 的关系 另外当视图定义出现如下情况时,视图不支持更新操作: 在定义视图的时候指定了“ALGORITHM = TEMPTABLE”,视图将不支持...,而子查询中引用了FROM后面的表,视图将不支持INSERT、UPDATE、DELETE; 视图定义基于一个 不可更新视图 ; 常量视图不可以进行更新 示例: mysql> INSERT INTO emp_dept...,但总的来说,视图作为 虚拟表 ,主要用于 方便查询 ,不建议更新视图的数据。

    2.1K20
    领券