精华内容
下载资源
问答
  • 视图

    2020-07-13 17:09:56
    同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 2关系型数据库中的数据是由一张...

    1视图的定义

    1视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
    2关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询都需要编写MySQL代码效率低下。为了解决这个问题,数据库提供了视图(view)功能,

    创建视图

    CREATE VIEW 视图名(列1,列2…)
    AS SELECT (列1,列2…)
    FROM …;
    1修改表名
    CREATE OR REPLACE VIEW 视图名 AS SELECT […] FROM […];
    2查看视图
    SHOW TABLES;

    DESC 视图名;
    或者
    SHOW FIELDS FROM 视图名;
    1)插入数据
    INSERT INTO v_order(pid,pname,price) VALUES(‘p010’,‘柴油’,‘34’);

    注意点:

    1. 视图不是表,不直接存储数据,是一张虚拟的表;
    2. 一般情况下,在创建有条件限制的视图时,加上“WITH CHECK OPTION”命令。
    展开全文
  • MySQL数据库视图视图定义、创建视图、修改视图

    万次阅读 多人点赞 2017-03-20 11:54:15
    关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以...

    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。——百度百科

    关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询都需要编写MySQL代码效率低下。为了解决这个问题,数据库提供了视图(view)功能。

    0 视图相关的MySQL指令

    操作指令 代码
    创建视图 CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...;
    使用视图 当成表使用就好
    修改视图 CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];
    查看数据库已有视图 >SHOW TABLES [like...];(可以使用模糊查找)
    查看视图详情 DESC 视图名或者SHOW FIELDS FROM 视图名
    视图条件限制 [WITH CHECK OPTION]

    1 视图

    百度百科定义了什么是视图,但是对缺乏相关知识的人可能还是难以理解或者只有一个比较抽象的概念,笔者举个例子来解释下什么是视图。

    朕想要了解皇宫的国库的相关情况,想知道酒窖有什么酒,剩多少,窖藏多少年,于是派最信任的高公公去清点,高公公去国库清点后报给了朕;朕又想知道藏书情况,于是又派高公公去清点并回来报告给朕,又想知道金银珠宝如何,又派高公公清点。。。过一段时间又想知道藏书情况,高公公还得重新再去清点,皇上问一次,高公公就得跑一次路。

    后来皇上觉得高公公不容易,就成立了国库管理部门,小邓子负责酒窖,小卓子负责藏书,而小六子负责金库的清点。。。后来皇上每次想了解国库就直接问话负责人,负责人就按照职责要求进行汇报。
    视图

    安排专人管理后,每次皇上想要了解国库情况,就不必让高公公每次都跑一趟,而是指定的人员按照指定的任务完成指定的汇报工作就可以了。

    和数据库相对应,每次进行查询工作,都需要编写查询代码进行查询;而视图的作用就是不必每次都重新编写查询的SQL代码,而是通过视图直接查询即可。因此:

    视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询。

    比如,我们希望从前文提到的四张表,order_baisc,order_details,user和product中查找所有记录,需要写入代码指令:
    查询
    想再次查询这几个表中uid为u0001的用户的记录,有需要键入一次操作指令:
    查询
    也就是说,每次查询都得重新键入查询指令SQL代码,这种费时费力的体力活,对于时间就是生命的你我来说,是不划算的。所以借助视图,来执行相同或相似的查询。

    2 创建视图

    2.1 创建视图create view
    创建视图的代码为:

    >CREATE VIEW 视图名(列1,列2...)
     AS SELECT (列1,列2...)
     FROM ...;

    可以看到,创建视图和查询相比,增加了前面的CREATE VIEW 视图名 AS

    2.2 视图运用

    使用视图和使用表完全一样,只需要把视图当成一张表就OK了。视图是一张虚拟表。

    eg:创建order_baisc,order_details,user和product的查询视图,并通过视图查找uid为u0001的记录:
    创建视图

    2.3 修改视图CREATE OR REPLACE VIEW

    修改和创建视图可以使用代码:

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

    eg:
    修改视图

    2.4 查看视图
    (1)查看数据库中有哪些视图 show tables
    前面提到,视图就是虚拟的表,因此,查看视图的方法和查看表的方法是一样的:

    >SHOW TABLES;

    查看视图

    通过show tables;反馈得到所有的表和视图。同样的,我们可以通过模糊检索的方式专门查看视图,这个时候,视图的命令统一采用v_v_视图名的优势就体现出来了。
    (2)查看视图详情
    查看视图详情的方法有两种,一种是和查看表详情一样使用desc 视图名,另外一种方法是show fields from 视图名

    >DESC 视图名;
    或者
    >SHOW FIELDS FROM 视图名;

    查看视图详情

    两种方法得到的详情都是一毛一样的。

    3 视图与数据变更

    3.1 表格数据变更
    将表product中的数据进行更新,在通过视图检索:

    视图与数据变更

    可以看到表格数据变化后,在通过视图检索,得到的结果也同步发生了变化,因此,在此证明了:

    视图不是表,不保存数据,知识一张虚拟表;

    3.2 通过视图变更数据

    • (1)插入数据
    >INSERT INTO v_order(pid,pname,price) VALUES('p010','柴油','34');

    在此查询视图,发现插入了数据。

    视图变更数据

    • (2)跨表插入数据
      通过上图,我们可以看到,跨表插入数据系统反馈报错,提示不能修改超过一个表的数据。

    因此,可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。

    • (3)WITH CHECK OPTION
      如果在创建视图的时候制定了“WITH CHECK OPTION”,那么更新数据时不能插入或更新不符合视图限制条件的记录。

      eg:对表product创建一个单价超过3000的视图,并加上“WITH CHECK OPTION”,之后插入一个价格为42的记录:

      “WITH CHECK OPTION”

      可以看到系统提示错误CHECK OPTION FAILED。因为视图限制了价格要高于3000.
      后面再次尝试了不加“WITH CHECK OPTION”的视图,后者可以成功插入。

      同样的,在不加“WITH CHECK OPTION”的情况下,通过视图修改记录,也可以成功执行:
      修改记录

    通过视图修改,可能导致数据无故消失,因此:

    没有特殊的理由,建议加上“WITH CHECK OPTION”命令。

    注意点:
    1. 视图不是表,不直接存储数据,是一张虚拟的表;
    2. 一般情况下,在创建有条件限制的视图时,加上“WITH CHECK OPTION”命令。

    展开全文
  • oracle视图中有没有用到一张

    千次阅读 2013-09-24 09:22:43
    问题原因: 1,文档不全 2,年久遗忘 ...办法:当然不需要,oracle提供丰富的数据登记表和视图,所有的用户对象都可以查询,比如说我们想查视图就涉及到一张表:user_views select * from user_views; 请看

    问题原因:

    1,文档不全

    2,年久遗忘

    3,员工离职

    结果:一张表(XZF_CASE_DISCUSS)不知道这张表有什么用是否在视图中使用过,是废表吗?总不能一个个去看视图吧!

    办法:当然不需要,oracle提供丰富的数据登记表和视图,所有的用户对象都可以查询,比如说我们想查视图就涉及到一张表:user_views

    select * from user_views;

    请看TEXT字段,这里存储着视图生成的语句,我们只要遍历这些语句,查看其是否包含目标表名,即可知道哪儿使用了该表。

    select instr(text,'XZF_CASE_DISCUSS',1,1) from user_views;
    这样似乎是问题解决了,但我突然发现忽略了一点,TEXT字段是LONG类型,因此我们只能接受出错的结果:

    查了资料,发现LONG类型很不容易操作,是oracle不提倡的数据类型,这里虽然还在使用,估计很快就会失效吧。这里提供一个改进的办法:

    Create TABLE testBak (col1 clob);  
    
    insert into testBak select to_lob(text) from user_views;  
    
    
    这样LONG类型的TEXT字段转换成clob类型的,对于clob类型我们就比较熟悉了,可以直接采用instr函数来操作,就可以了。

    select instr(col1,'XZF_CASE_DISCUSS',1,1) from  testBak 

    可以看到所有的记录都是0,说明在所有的视图中都没有用到过XZF_CASE_DISCUSS表,虽然不能断定该表是废表,但可以证明视图中没有这个东西。

    总结:oracle是这个星球上最强大的关系型数据库,只要有想法,没什么不可能,只要你肯动脑子,肯查资料,解决方案是一定会有的。


    展开全文
  • MySQL视图

    2019-03-03 20:21:42
    视图视图一张虚拟表,存在表结构,但是没有数据。 视图关键字 视图关键字:view 视图作用 节省查询语句的长度 对外提供访问接口 保证数据表(基表)的数据安全性。 视图能够选择性的从基表获取数据,并提供给...

    什么是MySQL视图

    视图:视图是一张虚拟表,存在表结构,但是没有数据。
    

    视图关键字

    视图关键字:view
    

    视图作用

    1. 节省查询语句的长度
    2. 对外提供访问接口
      保证数据表(基表)的数据安全性。
      视图能够选择性的从基表获取数据,并提供给外部。
    3. 对外友好性
      视图能够对外提供不同的数据信息。(不同的接口定义不同的视图)

    创建视图

    语法:(把后面的数据源起了个名字叫视图)
    create view 视图名字 as select语句;

    首先新增几条数据
    在这里插入图片描述
    我这里使用该表其中三个字段建了一个虚拟表
    在这里插入图片描述
    视图创建之后发生了什么?

    1. 创建视图结构(虚拟表)
      ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190303195649503.png
    2. 在数据库对应的文件夹下创建结构文件
      在这里插入图片描述
      视图是虚拟表,只有结构,没有数据。

    视图查看

    1. 视图可以像表一样的查看
      show tables/show create table/desc 视图名
      在这里插入图片描述
    2. 可以通过视图查看创建语句的方法
      show create view 视图名;
      在这里插入图片描述
    3. 查看视图数据:与查看表完全一致
      在这里插入图片描述
      视图不保存数据:数据的来源指的是当视图被调用的时候,系统会自动调用视图的创建语句中的select语句去执行。(子查询)

    修改视图

    视图修改的本质是修改视图的数据来源。
    

    语法: alter view 视图名字 as select语句;
    

    下面可以看到 我对数据源进行修改,虚拟表获取了student3的所有数据,把c_id也获取到了.
    在这里插入图片描述

    删除视图

    语法: drop view 视图名字;
    

    在这里插入图片描述

    视图数据增删改

    视图可以为基表进行数据的增删改操作,必须满足以下条件

    • 视图新增数据
    1. 视图的数据来源(基表)只能有一个
      在这里插入图片描述
      多表视图不能插入数据
      在这里插入图片描述
    2. 视图中的所有字段,必须包含了基表中不为空或者没有默认值的全部字段。
      在这里插入图片描述
    • 更新数据:基本没有限制(因更新时有where子句)
      单表视图更新
      在这里插入图片描述
      多表视图更新
      在这里插入图片描述
      删除数据:与插入数据条件一致,只有单表视图可以删除,多表不能删除

    单表视图删除
    在这里插入图片描述
    多表视图删除
    在这里插入图片描述

    视图算法

    视图在执行的过程中(视图被查询),到底是如何去执行视图对应的查询语句。

    视图算法分为三种:

    • 合并:merge,先将视图的SQL查询与与外部的查询语句进行语法合并
    • 临时表:temptable,先执行视图里面的查询语句,结果变成一个临时表
    • 未定义:undefined,系统自己判断到底使用合并还是临时表,默认的

    在这里插入图片描述

    	算法指定语法: create algorithm = 算法 view 视图名字 as select语句
    

    在这里插入图片描述

    结束语

    如果您对这篇博文有什么意见或者建议,请评论与我讨论。
    如果您觉得还不错的话~可以点个赞鼓励我哦。

    展开全文
  • Oracle视图

    2017-07-27 11:17:26
    视图是基于一张表或多张表或另外一个视图的逻辑表。视图不同于表,视图本身不包含任何数据。表是实际独立存在的实体,是用于存储数据的基本结构;而视图只是一种定义,对应一个查询语句。视图的数据都来自于某些表,...
  • 视图 View

    2018-06-02 15:55:13
      数据库中的视图是一个虚拟表,视图包含一系列带有名称的行和列数据。行和列数据来自自由定义视图查询所引用的表,并且在引用视图时动态生成。   视图是一个或者多个表中导出的,视图的行为与表非常相似,但是...
  • SQL里面有一张视图,视图单拿出来跑,需要十几分钟才能出结果(从这里基本上可以定位是视图的问题了)。 SQL和 视图的定义 如下 WITH "VVVVSUM_TABLE0" AS ( SELECT ...... FROM "ANNE_APPS".VVVVSUM_...
  • Django 视图

    万次阅读 2020-09-08 11:47:18
    文章目录Django 视图视图层请求对象: HttpRequest 对象(简称 request 对象)1、GET2、POST3、body4、path5、method响应对象:...无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在 Pyth
  • SQL视图

    2021-06-02 11:50:15
    什么是视图?如何创建、更新和删除视图视图作为一张虚拟表,帮我们...视图的这一特点,可以帮我们简化复杂的 SQL 查询,比如在编写视图后,我们就可以直接重用它,而不需要考虑视图包含的基础查询的细节。 ...
  • 视图学习

    2019-07-25 10:16:23
    视图一张虚拟表,视图的字段是由我们自定义的,视图只供查询,数据不可更改,查询数据来源于我们建立的实体表。 使用视图的优势,视图可以将多个复杂关联表,提取出我们需要的信息,优化查询速度。 下面则...
  • oracle视图

    2021-01-04 13:58:56
    oracle视图可以理解为数据库中一张虚拟的表,他是通过一张或者多张基表进行关联查询后组成一个虚拟的逻辑表。查询视图,本质上是对表进行关联查询。 视图的本身是不包含任何数据,只是一个查询结果,当基表的数据...
  • Mysql视图

    2019-07-15 19:31:53
    视图是基于一个表或多个表或试图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。 视图基于的表称为基表。 视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,195
精华内容 31,278
关键字:

一张完整的视图包括