精华内容
下载资源
问答
  • 数据库视图的用法
    千次阅读
    2018-11-24 21:08:13

    SQL视图的创建和使用

    什么是视图呢?

    视图是由SELECT语句组成的查询定义的虚拟表;同真实的表一样,视图的作用类似于筛选。或者说:视图是基于 SQL 语句的结果集的可视化的表

    视图的特点:

    1. 视图中的数据不属于视图本身,他来源于其他表。但是视图可以进行增删改查等操作。这里还涉及到一个问题:对视图的增删改操作会影响到对应的基表吗?这个问题我们文章后面会进行探讨
    2. 视图不能索引,不能有相关的触发器和默认值。在sqlserver里面,不能在视图后使用order by语句。
    3. 视图可以被嵌套,一个视图可以嵌套另一个视图
    4. 创建视图时,视图的名字不能和表名或其他视图名重复,视图名称具有唯一性。
    5. 数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响

    创建视图的语法:

    CREATE VIEW  视图名  AS
    SELECT 查询语句
    FROM 表或者其他视图
    WHERE 筛选语句
    

    PS:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

    举个j简单的栗子:

    if exists(select * from sys.views  where  name = 'view_name')
    drop view view_name
    go
    CREATE VIEW View_Product AS
    SELECT ProductID,ProductName
    FROM Products
    WHERE Price>1000
    

    我们可以查询上面的视图

    SELECT * FROM View_Product 
    
    更多相关内容
  • 你通过以下语句,创建了一个数据库视图: create view entities_entity as select id, name from entities_hero union select 10000+id as id, name from entities_villain 它包含所有Hero和Villain对象的名称。...
  • 数据库视图使用和原理

    万次阅读 多人点赞 2019-04-22 17:53:24
    视图的概述 视图是一个虚拟表,其查询的数据来自于视图定义时的 as select xx 查询语句。视图的列来自于一个表或多个表,所以视图不可以和表名重名。 数据多用作查询,一般不会通过视图去修改数据。 视图的作用 1....

    视图的概述

    视图是一个虚拟表,其查询的数据来自于视图定义时的 as select xx 查询语句。视图的列来自于一个表或多个表,所以视图不可以和表名重名。
    数据多用作查询,一般不会通过视图去修改数据。

    视图的作用

    1.视图能简化用户的操作
    我们可以为常用的sql语句创建一个视图,这样我们原来需要连多个表,现在操作一个表就好了。

    2.视图能够增加安全性
    我们可以给不同的用户定义不同的视图,屏蔽了底层的表结构,从而更好的保护了数据的安全性。降低了如sql注入的风险。

    3视图对重构数据库提供了一定程度的逻辑独立性
    数据的物理独立性是指用户的应用程序不依赖于数据库的物理结构。数据的逻辑独立性是指当数据库重构造时,如增加新的关系或对原有的关系增加新的字段,用户的应用程序不会受影响。

    视图的创建

    CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
        VIEW view_name [(column_list)]
        AS select_statement
        [WITH [CASCADED | LOCAL] CHECK OPTION]
    

    column_list子句,列出由逗号隔开的ID。column_list中的名称数目必须等于SELECT语句检索的列数。

    ALGORITHM可取三个值:MERGE、TEMPTABLE或UNDEFINED。如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的)。
    MERGE:直接合并结果集
    TEMPTABLE:创建临时表
    UNDEFINED:MySQL将选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。

    WITH CHECK OPTION子句中,LOCAL和CASCADED关键字决定了检查测试的范围。LOCAL关键字对CHECK OPTION进行了限制,使其仅作用在定义的视图上,而CASCADED会嵌套的检查前面的视图,如果未给定任一关键字,默认值为CASCADED
    在这里插入图片描述
    如果去除option则可以更新,
    使用with check 必须保证更新之后的数据,依旧符合where 条件,能被检索出来。

    视图的更新操作限制

    视图一般只用来查询,如果是单表的话,也可以进行增删改。但是有如下限制。
    1.聚合函数(SUM(), MIN(), MAX(), COUNT()等)。2 2.DISTINCT
    3. GROUP BY
    4. 4 HAVING
    5. UNION或UNION ALL
    6. 位于选择列表中的子查询
    7.Join
    8.FROM子句中的不可更新视图
    9. WHERE子句中的子查询,引用FROM子句中的表。
    10. 仅引用文字值(在该情况下,没有要更新的基本表)。
    11. ALGORITHM = TEMPTABLE(使用临时表总会使视图成为不可更新的)。

    展开全文
  • 实验六 视图和索引 实验目的 (1)了解视图的重要性 (2)掌握视图的建立 (3)掌握视图使用 (4)掌握索引的使用方法 (5)掌握索引的概念及分类
  • 摘要:Delphi源码,数据库应用,视图 Delphi中的数据库视图应用一例,简单的视图使用例子,初学者参考。 运行环境:Windows/Delphi7
  • 熟悉SQL语言有关视图的操作,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。 二、 实验内容和要求 在实验一所创建的学生数据库中, 1 写出创建满足下述要求的视图的...
  • 主要为大家详细介绍了python3+PyQt5使用数据库视图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 数据库视图详解

    千次阅读 2021-11-05 20:21:47
    视图中的字段就是来自一个或多个数据库中的真实的表中的字段。只保存SQL逻辑,不保存查询结果 。一般用于会在多个地方用到同样的查询结果,或者该查询结果使用的SQL语句较复杂。 创建视图 #方式一: CREATE VIEW ...

    视图

    视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。只保存SQL逻辑,不保存查询结果 。一般用于会在多个地方用到同样的查询结果,或者该查询结果使用的SQL语句较复杂。

    创建视图

    #方式一:
    CREATE VIEW 视图名 AS 查询语句;
    
    #方式二:这个视图没有就创建,有就修改
    CREATE OR REPLACE VIEW 视图名
    AS
    查询语句;
    

    示例一:

    -- 创建视图实例1:将学⽣表中性别为男的学⽣⽣成⼀个视图
    create view view_test1
    AS
    select * from students where stu_gender='男';
    -- 查询视图
    select * from view_test1;
    

    示例二:

    -- 创建视图实例1:将学⽣表中性别为男的学⽣⽣成⼀个视图
    create view view_test1
    AS
    select * from students where stu_gender='男';
    -- 查询视图
    select * from view_test1;
    

    修改视图

    #方式一:这个视图没有就创建,有就修改
    CREATE OR REPLACE VIEW 视图名
    AS
    查询语句;
    
    #方式二:
    ALTER VIEW 视图名
    查询语句; 
    

    删除视图

    #可以连续删除多个视图
    DROP VIEW 视图名1,视图名...;
    

    查看视图

    #查看视图的结构
    DESC 视图名;
    #查看创建视图的逻辑
    SHOW CREATE VIEW 视图名;
    

    视图更新

    视图的增删改与表的语法一致;
    具有一下任一特点的视图不允许更新:

    1. 创建视图的SQL语句中包含一下关键字:分组函数,DISTINEC,GROUP BY,HAVING,UNION ,UNION ALL;
    2. 创建视图的查询结果是连接查询的结果;
    3. FROM后是一个不可更新的视图;
    4. 常量视图;
    5. SELETE语句中包含子查询;
    6. WHERE 子句中的子查询引用了FROM后的表;

    视图特性:

    查询操作:如果在数据表中添加了新的数据,⽽且这个数据满⾜创建视图时查询语句的条
    件,通过查询视图也可以查询出新增的数据;当删除原表中满⾜查询条件的数据时,也会从视图中删除。
    新增数据:如果在视图中添加数据,数据会被添加到原数据表。
    删除数据:如果从视图删除数据,数据也将从原表中删除。
    修改操作:如果修改视图数据,也会修改原数据表中的数据。

    视图的使⽤建议 : 对复杂查询简化操作,并且不会对数据进⾏修改的情况下可以使⽤视图。

    展开全文
  • java 访问数据库视图

    2021-02-26 14:40:31
    工作多年调用视图到多次,自己写代码使用视图还是头一回,也觉得新鲜,那就开始呗, 数据库系统是Oracle1 我用的数据库连接客户端是Navicat ,首先创建视图,其实视图就是调用表的操作,提取自己需要的数据放到视图下面,相...

    工作多年调用视图到多次,自己写代码使用视图还是头一回,也觉得新鲜,那就开始呗, 数据库系统是Oracle

    1 我用的数据库连接客户端是Navicat ,首先创建视图,其实视图就是调用表的操作,提取自己需要的数据放到视图下面,相对于java来说,可以把视图看成是特殊的表对待,这里说的特殊指的是 通过hql语句调用访问数据库的时候涉及到关联表的问题.  创建视图如下:

    1354173188_8727.png

    然后通过myeclipse的 hiberange reverse engineering 生成pojo和hbm.xml文件. 生成后发现生成了两个pojo和一个hbm.xml文件,如下:

    1354176115_1320.png

    然后在代码中使用的时候部分代码如下:

    if (idNumberStr.equals("")){

    StringBuffer wherePart = new StringBuffer();

    List parmaters = new ArrayList();

    wherePart.append(" id.hrid = ? ");

    parmaters.add(uniquedId);

    wherePart.append(" and id.datetime >=? ");

    parmaters.add(_startDate);

    wherePart.append(" and id.datetime <=? ");

    parmaters.add(_endDate);

    cdaList = this.cdaDao.queryObjectsByWhere(

    VICdaSummary.class, wherePart.toString(), parmaters.toArray(),

    null, startRow, rowCount);

    为什么代码中要使用 id.hrid ,id.datetime  等等,而不是直接使用hrid,datetime呢,查的也是VICdaSummary这个视图啊, 原因是(hql语句的视图查询)使用的是联合主键查询,sql语句的视图查询不需要使用id.hrid等, 和查询表一样, 在 VICdaSummary.java 类中引用了 VICdaSummaryId.java类 ,且作为主键 ,参见下图:

    1354176543_9448.png

    在参加下图:

    1354176570_9879.png

    在视图中我们应该保证视图中的每个字段都不为空(null ) ,因此我做了如下处理:

    1354176702_4506.png

    将可能为空的字段赋值为 empty ,字符串类型的 .

    下面附上sql语句的视图查询部分代码:

    1354177288_1434.png

    上图中并没有使用 id.HRID 是吧. ok 搞定.

    补充:视图的执行是在,java调用该视图的时候触发该视图执行设计视图的语句 ,然后从结果集中拿回java传递的语句所查询的内容. 让部分操作交给数据库系统执行,尤其在涉及到多表操作时候,及其有用.

    展开全文
  • 主要为大家详细介绍了python3+PyQt5使用数据库窗口视图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 数据库视图

    千次阅读 2022-04-14 17:16:02
    一、什么是视图 百度百科的解释是: 视图是一个虚拟表,视图并不在数据库中存储数据值,数据库中只在...在视图中用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE和DELETE修改记录。视图可以使用户操作方便
  • 在分析了面向对象数据库(OODB)及数据库视图功能特征的基础上,讨论了面向对象数据库视图的实现方法,在OODB中实现了基于对象查询的数据库视图的部分功能,并研制了一个档案管理系统加以验证。
  • 在本例的视图中,我们使用了 MySQLdb 类库(可以从 http://www.djangoproject.com/r/python-mysql/ 获得)来连接 MySQL 数据库,取回一些记录,将它们提供给模板以显示一个网页: from django.shortcuts import ...
  • 数据库视图优缺点分析

    千次阅读 2021-01-28 00:24:21
    视图作用是什么所谓视图(View)其实是执行查询语句后得到的结果,但这个查询结果可以仿真成数据表来使用,所以有人也称它为“虚拟数据表”,视图在操作上和数据表没有什么区别,但两者的差异是其本质是不同的:数据表...
  • 支持oracle或mysql,输入数据库的连接信息及表名或视图名,自动根据表或视图创建实体类,非常好用的一个小程序,大大节省时间~
  • 数据库视图创建及应用

    千次阅读 2021-08-07 14:10:25
    数据库视图创建及应用 一、视图: 视图是从一个或几个基本表(或视图)导出来的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以一旦基本表...
  • 数据库基础与实践实验报告 实验四 视图和索引 班级惠普测试 142 学号1408090213 姓名闫伟明 日期2016-11-13 1 实验目的 1) 掌握 SQL 进行视图创建的方法 2) 掌握 SQL 进行视图更新的方法理解视图更新受限的原因 3) ...
  • 数据库视图的总结

    千次阅读 2018-05-25 11:22:30
    视图的概念VIEW ( 视 图 ) 是 一 个 或 多 个 表 的 部 分 数 据 , 它 可 以 像 表 一 样 进 行 CRUD 操 作 , 但 没 有 具 体 的 存 储 数 据 结 构 , 它 以 一 个 SELECTiä 句 的 形 式 存 在 数 据 库 中 。...
  • 简述使用数据库视图的主要优点

    千次阅读 2018-10-17 23:50:51
    视图能够集中数据,简化用户的数据查询和处理。 视图便于用户共享数据。 视图提高了数据的逻辑独立性。 视图能够对机密数据提供安全保护。
  • PostgreSQL数据库中最有用的功能之一就是创建自定义“视图”,这些视图仅仅是预先定义的SQL查询,它们存储在数据库中并可以在需要时重复使用。因此,以这种方式储存经常使用的SQL查询比每次都手工输入要更有效率而且...
  • 数据库视图的创建和使用,对视图的创建、修改和删除均可在可视化界面下操作
  • 实验五 视图的创建与使用 一实验... 创建视图 (1 创建一个名为 stuview2 的水平视图数据库 Student_info的Student 表中查询出 性别为 男 的所有学生的资料并在创建视图使用 with check option 注该子句用于 强制
  • 数据库视图 sql

    千次阅读 2021-01-28 08:08:21
    数据库必知词汇:数据库视图视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,...
  • 工具:Navicat PremiumOracle 11g视图基本概念知识储备:常见数据库对象表 :基本的数据存储集合,由行和列组成视图 :从表(一个或多个)中抽取出的逻辑上相关的数据集合序列:提供有规律的数据索引:提高查询的效率...
  • 数据库视图概念,优缺点及作用

    万次阅读 2019-05-10 14:47:02
    视图(子查询):是从一个或多个表导出的虚拟...①简化了操作,把经常使用的数据定义为视图。 我们在使用查询时,在很多时候我们要使用聚合函数,同时还要 显示其它字段的信息,可能还会需要关联到其它表,这时写的...
  • 数据库视图的创建与使用ppt,需要的童鞋课下载
  • 数据库实验5:视图使用.pdf
  • 数据库使用视图优化查询性能

    千次阅读 2019-09-03 11:01:39
    视图是从一个或多个表中导出来的虚拟表。这是因为视图返回的结果集的一般格式与由列和行组成的表相似,并且在SQL语句中...在定义一个视图时,只是把其定义存放在数据库中,并不直接存储视图对应的数据,直到用户使用...
  • MySQL数据库视图:视图定义、创建视图、修改视图

    万次阅读 多人点赞 2017-03-20 11:54:15
    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。 关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询...
  • 数据库 视图基础概念

    万次阅读 2019-01-19 11:06:12
    视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 535,819
精华内容 214,327
关键字:

数据库视图使用