视图

UML 视图 概述 事物(Things)、关系(Relationships) 是组成 UML 模型的基本模型元素,图由模型元素事物和关系构成,视图由各种图构成。 随着系统复杂性的增加,建模就成了必不可少的工作。理想情况下,系统由单一的图形来描述,该图形明确地定义了整个系统,并且易于人们相互交流和理解。然而,单一的图形不可能包含系统所需的所有信息,更不可能描述系统的整体结构功能。一般来说,系统通常是从多个不同... 阅读详情
一、视图和表

    1、什么是视图

        1)视图是一种数据库对象,是从一个或多个数据表或视图中导出来的虚表,视图所对应的数据并不真正存储在视图中,而是存储在所引用的表中,视图的结构和数据是对数据表进行查询的结果。

        2)根据创建视图时所给定的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,它存储了查询语句的定义,以便在引用视图时使用。

    2、视图和表的区别

        表中保存的是实际数据,而视图中保存的是从表中取出数据所使用的select语句,视图本身不存储数据。   

        视图是保存select结果的临时表,视图不会保存数据。

    3、视图的优点

        1)视图无需保存数据,因此可以节省存储设备的容量。

        2)可以将频繁使用的复杂查询保存为视图,避免重复书写。

        3)限制某个视图只能访问基表中的部分列或部分行,有一定的安全性。

        4)可以从多张基表中按一定的业务逻辑抽出用户需要的部分,形成虚拟表。

二、创建视图

                CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name

                AS

                SELECT查询语句

                [WITH READ ONLY CONSTRAINT]

    语法解析:

        1)OR REPLACE:如果视图已经存在,则替换旧视图。

        2)FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

        3)NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

        4)WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。

    1、给用户授权

        

        sys用户给Scott用户授权,若没有授权则不能创建视图。

    2、创建简单视图

       

        1)  使用视图

        

        对视图可以像表一样查询。在from子句中使用视图的查询,通常有如下步骤:

        a、  首先执行定义视图的select语句

        b、  根据得到的结果,再执行使用视图的select语句

        即使用视图查询需要执行2条或2条以上的select语句。

        2) 视图的限制

         a、定义视图时不能使用orderby子句

            因为视图和表一样,数据行是没有顺序的。

         b、  对视图进行更新,如果定义视图的select语句能够满足某些条件,那么这个视图可以被更新,具有代表性的条件如下:

            1>    select语句中未使用distinct

            2>    from子句中只有一张表

            3>    未使用group by 子句

            4>    未使用having子句

        也就是通过汇总得到的视图无法进行更新

    3) 视图的DML更新

        

        查询结果:

        

        基表也发生了改变:

        

       撤销操作,恢复测试表emp

        

        4) 只读视图

        

        更新基表,只读视图也会发生改变。

三、删除视图

       Drop view view_name 命令删除视图

        

        a、删除视图的定义不影响基表的数据。

        b、只有视图所有者和具备drop view权限的用户可以删除视图。

        c、视图被删除后,基于被删除视图的其他视图或存储过程等都将无效。

        d、视图被删除后,该视图的定义会从词典中被删除,并且在该视图上授予的权限也会被删除。

四、更改视图

         对视图进行更改或重定义之前需要了解的问题:

        a、  视图只是一个虚表,其中没有数据,所以更改视图只是改变数据字典中对该视图的定义信息,视图的所有基础对象不会受到影响。

        b、  更改视图之后,依赖于该视图的所有视图和PL/SQL程序都将变为invalid失效状态。

        c、  如果以前的视图中具有withcheck option选项,但是重定义时没有使用该选项,则以前的该选项会自动删除。

    1)更改视图的定义

        执行create or replace view语句。这种方法代替了先删除后创建的方法,会保留视图上的权限,但是与该视图相关的存储过程和视图会失效。

        

    2)视图的重新编译

          Alter view 视图名 compile;

         当视图依赖的基表改变后,视图会失效,为了确保这种改变不影响视图和依赖于该视图的其他对象,应该使用alter语句重新编译该视图,从而在运行视图前发现重新编译的错误,视图被重新编译后,若错误,则依赖该对象的视图也会失效。若没有错误,视图会有效。

         当访问基表改变了的视图时,oracle会自动重新编译这些视图。即对视图进行查询时,会自动编译视图。

        

        只有修改表的结构后才会影响视图的有效性,而修改表的数据不会影响视图的有效性。但是,并非针对所有基础表的修改后,通过编译视图都可以通过。比如修改基础表的列名无法自动编译通过。

         改变基础表的结构,视图失效,重新编译,视图变有效:

        

         重新改回去基表结构,视图失效,查询一次视图,自动编译,视图变有效:

        

五、查看视图

       使用数据字典视图:

        dba_views——DBA视图描述数据库中的所有视图

        all_views——ALL视图描述用户“可访问的”视图

        user_views——USER视图描述“用户拥有的”视图 

        dba_tab_columns——DBA视图描述数据库中的所有视图的列(或表的列)

        all_tab_columns——ALL视图描述用户“可访问的”视图的列(或表的列)

        user_tab_columns——USER视图描述“用户拥有的”视图的列(或表的列) 

    1)查询当前所有视图的信息

    

    2)查看当前指定视图的列名信息

    

六、连接视图

        视图分为简单视图和复杂视图。

        简单视图只从单表里获取数据;复杂视图从多表里获取数据。

        简单视图不包含函数和数据组;复杂视图包含函数和数据组。

        简单视图可以实现DML操作;复杂视图不可以。

        1)创建连接视图

        指基于多个表所创建的视图,即定义视图的查询是一个连接查询。主要目的是为了简化连接查询。

        示例: 查询部门编号为10和30的部门及雇员信息

        

        

        2)连接视图上的DML操作

        

        在视图上进行的所有DML操作,最终都会在基表上完成。

        select 视图没有什么限制,但insert/delete/update有一些限制。

        3)键值保存表

        如果连接视图中的一个基表的键(主键、唯一键)在它的视图中仍然存在,并且基表的键任然是连接视图的键,即某列在基表中是主键|唯一键,在视图中仍然是主键|唯一键,则称这个基表为“键值保存表”。  

        一般地,由主外键关系的2个表组成的连接视图,外键表就是键值保存表,而主键表不是。

        4)连接视图的更新

        a、一般准则

        1>任何DML操作,只能对视图中的键值保存表进行更新, 即,“不能通过连接视图修改多个基表”。

        2>在DML操作中,只能使用连接视图定义过的列。

        3>自连接视图的所有列都是可更新(增删改)的。

        b、insert准则

        1>在insert语句中不能使用非键值保存表中的列(包括连接列)。

        2>执行insert操作的视图,至少应该包含键值保存表中所有设置了约束的列。

        3>如果在定义连接视图时使用了WITHCHECK OPTION 选项,则不能针对连接视图执行insert操作。

        c、update准则

         1>键值保存表中的列是可以更新的。

         2>如果在定义连接视图时使用了WITH CHECK OPTION 选项,则连接视图中的连接列(一般就是共有列)和基表中的其他共有列是不可更新的,连接列和共有列之外的其他列是可更新的。

        d、delete准则

        如果在定义连接视图时使用了WITH CHECK OPTION 选项,依然可以针对连接视图执行delete操作

        5)可更新连接视图

        如果创建连接视图的select查询不包含如下结构,并且遵守连接视图的更新准则,则这样的连接视图是可更新的:

        一)  集合运算符(union,intersect,minus)

        二)  DISTINCT关键字

        三)  GROUP BY,ORDER BY,CONNECT BY或START WITH子句

        四)  子查询

        五)  分组函数

        六)  需要更新的列不是由列表达式定义的

        七)  基表中所有NOT NULL列均属于该视图

        七、复杂视图

         复杂视图定义:是指包含函数、表达式、或分组数据的视图。主要目的是为了简化查询。主要用于执行查询操作,并不用于执行DML操作。

          注意:当视图的select查询中包含函数或表达式时,必须为其定义列别名。

          示例:查询目前每个岗位的平均工资、工资总和、最高工资和最低工资。

          

          








































        
        

        






















数据库视图详细笔记。视图的优点,视图中DML操作的执行规则,视图如何拒绝DML操作,什么是内建视图 文章目录视图1. 什么是视图2.视图的优越性3.视图的类型4. 简单视图VS复杂视图5. 创建简单视图6. 用子查询中的列别名创建视图7. 从视图中取回数据8. 创建复杂视图9. 在定义视图时指定列名10. 视图中DML操作的执行规则11. 拒绝DML操作12. 通过工具创建视图13. 删除视图14. 内建视图 视图 视图是数据库其他对象 1. 什么是视图 可以通过创建表的视图来表现数据的逻辑子集或数据的组合。视图是基于表或另一个视图的逻辑表,一个视图并不包含它自己的数据,它象一个窗口,通过该窗口可以查看或 阅读详情

相关推荐

数据库视图和表的区别及编程实例

在实际应用中,根据需求的不同,我们可以灵活地使用表和视图来管理和访问数据库中的数据。视图是一个虚拟的表,它提供了一种对数据的抽象视图,可以隐藏底层表的结构和复杂性。视图可以被视为一个只读的表,对视图的修改操作会反映到底层的表上。而视图则是基于查询的结果集,提供了一个虚拟的表结构,可以简化复杂的查询操作并提供更加方便的数据访问方式。表是实际存储数据的物理结构,可以直接对其进行操作和修改,对表的操作会直接影响数据的存储和检索效率。的视图,它仅包含部门为"HR"的员工的ID和姓名。然后,我们创建了一个名为。

git_web425的博客 1620

表和视图的区别

表和视图

weixin_40659514的博客 6676

H5获取手机相机或相册图片两种方式-Android通过webview传递多张照片给H5

H5调用公共获取图片文件方法,在android手机端,H5主要依赖Webview,这边在webview声明并重写该方法onShowFileChooser使用工具类打开相机或相册,可以两种方式安卓原生方式或者利用第三方组件库方式选中图片,返回uri列表给H5H5收到uri照片列表,并且使用前端方式展示创造价值,乐哉分享!

m0_74823947的博客 3096

视图和表的区别??

区别? 视图是虚拟的表,包含的是sql逻辑,占用少量的物理空间。而表中保存的是数据,占用大的物理空间; 当使用视图时,才会根据视图存储的sql逻辑动态生成一个虚拟表; 对视图的操作跟普通表是一样的(增删改查); 视图的建立create和删除drop只影响视图本身,不影响对应的基本表。 应用: 隐藏一些不想展示给用户的数据。只展示必要的数据。如:社会保险基金表,可以用视图只显示姓名,地址,而不显示...

小码哥222的博客 2万+

新手DIY无人机,从电机到飞控,这份配件清单和避坑指南请收好

本文为无人机DIY新手提供从电机到飞控的完整配件清单和避坑指南。详细解析电机KV值选择、电调匹配、飞控系统调试等核心问题,帮助初学者避开常见雷区,顺利完成首飞。特别推荐FPV竞速机和航拍机的配件组合方案,并附赠实用调试命令和故障排查表。

weixin_27032989的博客 237

LC滤波器设计实战:从理论计算到PCB布局的完整指南

滤波器是信号处理与电路设计中的基础组件,用于从复杂信号中提取特定频率分量或抑制干扰噪声。其核心原理基于电感(L)和电容(C)等无源元件的频率选择特性,通过特定的网络拓扑实现幅频与相频特性的塑造。在工程实践中,LC滤波器因其结构简单、可靠性高、成本可控,成为射频、模拟及电源电路中的关键技术手段。其设计价值在于将理论网络综合转化为可量产、高性能的硬件解决方案,广泛应用于通信系统、音频处理、电源净化和传感器信号调理等场景。本文聚焦于LC滤波器的工程设计全流程,深入剖析了巴特沃斯、切比雪夫等经典类型的选型权衡,并重

weixin_34194829的博客 273

【数据库】视图与表的区别:深入理解数据库中的虚拟表

表是实际存储数据的物理结构,占用磁盘空间,支持索引和约束,查询性能高效。视图是基于表查询定义的虚拟结构,不存储数据,每次查询动态生成结果。性能方面,表查询直接访问数据,效率最高;视图查询需执行底层SQL,复杂视图或多层嵌套会显著影响性能。表适合存储基础数据,视图常用于简化复杂查询、数据权限控制等场景。实际应用中应根据需求合理选择,通常将视图作为查询优化工具而非数据存储方案。

一个普通程序员的成长记录簿 2122

48V电气架构全面科普和解析:下一代智能电动汽车核心驱动

随着电动汽车(EV)技术的不断发展,传统的12V电力系统已经逐渐无法满足日益增长的功率需求,尤其是在电动汽车中,48V电气系统的引入成为了一种理想的解决方案。在电动汽车中,48V系统与Zonal架构的结合,不仅有效提升了车辆电力系统的能效,还为未来的技术升级提供了灵活的设计基础。随着电动汽车(EV)技术的发展,车辆电气系统的工作电压逐步从传统的12V系统向更高的电压过渡。随着电动汽车技术的不断进步,传统的12V电气系统逐渐无法满足现代高性能电动汽车的需求,而48V电力系统的引入成为一种理想的解决方案。

weixin_43199439的博客 7810

什么是数据库视图(View)?视图和表有何区别?

在数据库的世界里,视图(View)可以被理解为一种虚拟的表。它本身并不存储数据,而是基于一个或多个基础表构建的一个查询结果集。当你查询视图时,实际上是在执行这个预定义好的SQL查询,并返回相应的结果。

程序员学习园地。 6483

【Milvus】实战指南:利用milvus-backup实现高效数据备份与恢复

本文详细介绍了如何利用官方工具milvus-backup为Milvus向量数据库实施高效的数据备份与恢复。文章从备份的必要性出发,逐步讲解了环境准备、配置要点、全量与按需备份操作,以及恢复数据的关键步骤和验证方法,旨在帮助用户构建可靠的数据安全防线,应对误操作或系统故障风险。

weixin_29217235的博客 131

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

MySQL数据库视图:视图定义、创建视图、修改视图

视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。 关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以大大降低查询的重复性。

moxigandashu的博客 19万+

图解联合概率密度、边缘概率密度、条件概率密度之间的关系

简要图解联合概率密度、边缘概率密度、条件概率密度之间的关系

一个搬运知识的笨小孩 2万+

数据库 SQL Server 视图 创建视图 查询视图 修改视图 删除视图

文章目录1 视图概述2 创建视图3 修改视图4 删除视图 1 视图概述 视图就是将一个或多个表中的目标字段抽取出来形成的一个虚拟表。这个虚拟表和真实的表具有相同的功能。 2 创建视图 语法格式: create view view_name as select 字段 from tb1 where 条件 create view v_id_name as select departid,name from files 注: files表的建表语句,如下: create table files( userid

qq_740785701的博客 1万+

TC3XX - MCAL知识点(十三):IOM EB-tresos配置说明及代码浅析

输入输出监视器(IOM)驱动程序作为比较单元,检查系统外设输出的正确操作,这些输出可以作为监视功能的输入。监控功能需要通过配置IOM硬件来实现。它向SMU生成全局系统事件。IOM驱动程序初始化并控制微控制器的IOM单元。驱动程序还为用户提供初始化和设置IOM内部单元的阈值的服务。它还应该提供重置IOM内核的服务。应该提供该服务来组合单个或多个本地事件,以生成单个全局系统事件。IOM驱动程序严重依赖于初始化和配置。软硬件关系如下图缩写解释LAM逻辑分析模块ECM事件组合模块FPC。

梦想技术家 1799

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

逻辑视图、实现视图、进程视图、部署视图和用例视图

目录 一、RUP概述 二、“4+1”视图模型 一、RUP概述 RUP(Rational Unified Process),统一软件开发过程,统一软件过程是一个面向对象且基于网络的程序开发方法论。 在RUP中采用“4+1”视图模型来描述软件系统的体系结构。“4+1”视图包括逻辑视图、实现视图、进程视图、部署视图和用例视图。 最终用户关心的是系统的功能,因此会侧重于逻辑视图; ...

turbock的博客 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

视图:定义视图 (建立视图、删除视图格式、查询视图、更新视图、视图的作用)

用途非常广泛:可以用在超市年汇总,年报,月报,季报汇总等,都需要用到视图 视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表,即数据库中只存放视图的定义,即对应的SELECT语句。当用户引用视图时,才根据定义形成虚拟表。视图一经定义,就可以和基本表一样进行一些操作:查询:删除;在视图之上再定义视图;受限更新。 SQL语言使用CREATE VIEW(关键词)命令建立视图,一般格式: 说明: select statement

今天会营业的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

软考高级:逻辑视图、实现视图、进程视图、部署视图和用例视图 概念和例题

逻辑视图、实现视图、进程视图、部署视图和用例视图是软件架构设计中的五种基本视图,它们共同构成了一个软件系统的全貌。每种视图都从不同的角度描述了系统的某些方面,帮助开发者、设计者和利益相关者理解系统的结构和行为。下面我将分别介绍这五种视图,并给出相应的例子。

悟鸣的技术博客 4161

MySql数据库之视图(定义视图、查询视图、更新视图、视图的作用)

目录 一、定义视图 1、建立视图 2、删除视图 二、查询视图 三、更新视图 四、视图的作用 一、定义视图 1、建立视图 语法:CREATE VIEW 视图名 【列名】... AS 子查询 【WITH CHECK OPTION】 WITH CHECK OPTION:加上这个语句后即对视图的修改需要符合定义视图时子查询中的条件表达式。 例1:单个表上的视图 CREATE VIE...

地球太危险了吧 3029

数据库视图解析[普通视图、物化视图以及通过修改视图修改数据]

数据库视图解析[普通视图、物化视图以及通过修改视图修改数据]

XiaoCai 5020

mysql视图

2. 使用ALTER修改视图 给现有视图去掉身份证号列 ALTER VIEW vStudentInfo as select a.studentid 学号,sname 姓名,email 邮箱,class 班级,subjectName 科目,mark 成 绩 from `TStudent` a join `TScore` b on a.`StudentID`=b.`StudentID` join `TSubject` c on b.`subJectID`=c.`subJectID`

2301_78929623的博客 2376

MySQL视图——创建视图、修改视图、删除视图、查看视图和更新视图

一、创建视图 语法:          create view 视图名          as          查询语句; 案例 1. 查询姓名中包含k字符的员工名、部门名和工种信息 ①创建视图myv1,查看 ②使用 案例 2. 查询各部门的平均工资级别 ①创建

DebbyOctober的博客 2751

3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)

1.什么是视图 视图用来向用户展示模型中的数据,依赖于模型而存在,决定了相关页面数据的展现方式,常见的的视图包括:tree、form、search、kanban、graph等,企业版支持更多的视图形式,如:gantt、 dashboard等 2.视图的声明方式 <odoo> <record model="ir.ui.view" id="view_id"> <field name="name">视图名称</field> .

Mogul的博客 5040

PostgreSQL视图和物化视图

我们常用说的视图一般是指 view,即普通视图;而物化视图则是materialized view(materialized 使物质化,使具体化(materialize 的过去式和过去分词))。两者都是视图,但是名称不一样,说明两者还有有所差异的。下面就来简单介绍一下PostgreSQL中的视图和物化视图的差异。...

荷塘月色 6277

MySQL的视图定义、规则与视图作用、创建视图和修改视图,以及视图的保存

MySQL数据库之视图 目录视图1、视图定义1、为什么需要视图3、视图的作用优点作用:优点:4、创建视图5、视图使用规则1)视图的嵌套:2)视图排序的覆盖6、修改视图多表连接视图:复杂视图7、 删除视图8:MySQL数据库中的视图保存: 视图 1、视图定义 视图通过以定制的方式显示来自一个或多个表的数据 视图是一种数据库对象,用户可以像查询普通表一样查询视图 视图内其实没有存储任何数据,它只是对表的一个查询 视图的定义保存在数据字典内,创建视图所基于对表称为“基表” 1、为什么需要视图 例如经常要对emp和

milu_nff的博客 4392
上一篇: 事务
下一篇: 子查询
Root__Liu
博客等级 码龄10年 13粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值