Oracle中视图的创建和处理方法

Oracle 11g 数据库基础教程 Oracle 11g 数据库基础教程 课堂笔记 系统服务 操作系统通过服务来管理安装好的Oracle 11g数据库产品的运行 在运行Oracle数据库前 要检查数据库服务有没有启动好 开始»控制面板»管理工具»服务 OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动) ... 阅读详情
一.视图的概念

视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。

视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。

二.视图的优点:
1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。

2.用户通过简单的查询可以从复杂查询中得到结果。

3.维护数据的独立性,试图可从多个表检索数据。

4.对于相同的数据可产生不同的视图。
三.视图的分类:

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

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

2、简单视图不包含函数和数据组,复杂视图包含;

3、简单视图可以实现DML操作,复杂视图不可以。
四.视图的创建:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]

其中:

  • OR REPLACE :若所创建的试图已经存在,ORACLE自动重建该视图;
  • FORCE:不管基表是否存在ORACLE都会自动创建该视图;
  • NOFORCE:只有基表都存在ORACLE才会创建该视图:
  • alias:为视图产生的列定义的别名;
  • subquery :一条完整的SELECT语句,可以在该语句中定义别名;
  • WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;
  • WITH READ ONLY :该视图上不能进行任何DML操作。

例如:

            CREATE OR REPLACE VIEW dept_sum_vw(name,minsal,maxsal,avgsal)

            AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)

            FROM    emp e,dept d

            WHERE e.deptno=d.deptno

            GROUP BY d.dname;
五.视图的定义原则:
1. 视图的查询可以使用复杂的SELECT语法,包括连接/分组查询和子查询;

2. 在没有WITH CHECK OPTION和 READ ONLY 的情况下,查询中不能使用ORDER BY 子句;

3. 如果没有为CHECK OPTION约束命名,系统会自动为之命名,形式为SYS_Cn;

4. OR REPLACE选项可以不删除原视图便可更改其定义并重建,或重新授予对象权限。
六.视图的查询:

视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样。

还可以查询视图的全部信息和指定的数据行和列。 如:检索数据:

SQL>SELECT * FROM dept_sum_vw;
七.查询视图定义:
SELECT view_name,text from user_views;

其中text显示的内容为视图定义的SELECT语句,可通过DESC USER_VIEWS 得到相关信息。

八.修改视图:

通过OR REPLACE 重新创建同名视图即可。

九.视图上的DML 操作:

DML操作应遵循的原则:

  1. 简单视图可以执行DML操作;

  2. 在视图包含GROUP 函数,GROUP BY子句,DISTINCT关键字时不能删除数据行;

  3. 在视图不出现下列情况时可通过视图修改基表数据或插入数据:

    a.视图中包含GROUP 函数,GROUP BY子句,DISTINCT关键字;

    b.使用表达式定义的列;

    c.ROWNUM伪列。

    d.基表中未在视图中选择的其他列定义为非空且无默认值。

视图可用于保持数据库的完整性,但作用有限。

通过视图执行引用完整性约束可在数据库级执行约束。

WITH CHECK OPTION 子句限定:

通过视图执行的INSERTS和UPDATES操作不能创建该视图检索不到的数据行,因为它会对插入或修改的数据行执行完整性约束和数据有效性检查。

例如:

        CREATE OR REPLACE VIEW vw_emp20

        AS SELECT * FROM emp

        WHERE deptno=20

        WITH CHECK OPTION constraint vw_emp20_ck;

视图 已建立。

查询结果:

SELECT empno,ename,job FROM vw_emp20;

        EMPNO    ENAME    JOB

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

        7369     SMITH    CLERK

        7566     JONES   MANAGER

        7902     FORD    ANALYST

修改:

        UPDATE vw_emp20

        SET        deptno=20

        WHERE   empno=7902;

将产生错误:

UPDATE vw_emp20

*

ERROR 位于第一行:

ORA-01402:视图WITH CHECK OPTION 违反WHERE 子句

视图的删除:DROP VIEW VIEW_NAME语句删除视图。删除视图的定义不影响基表中的数据。只有视图所有者和具备DROP VIEW权限的用户可以删除视图。视图被删除后,基于被删除视图的其他视图或应用将无效。

十.原文链接:http://www.blogjava.net/caizh2009/articles/287787.html
Elsevier投稿实战:从ESWA模板到录用通知的全流程拆解 本文详细拆解了Elsevier旗下期刊ESWA(Expert Systems With Applications)的投稿全流程,从模板选择、投稿系统操作到审稿意见回复和录用后注意事项。重点分享了单栏LaTeX模板调整、APA文献格式处理、Highlights撰写技巧等实战经验,帮助研究者高效完成投稿并提升录用概率。 阅读详情

相关推荐

从指令到坐标:深度解析307系列基站定位的AT指令实战与排错

本文深度解析了ML307系列模组基站定位的AT指令实战应用与排错方法。重点剖析了AT+MLBSCFG和AT+MLBSLOC两条核心指令的配置、执行流程及异步响应机制,并针对高德与OneOs两种主流定位服务提供了完整的配置指南。文章结合常见错误码(如126、127)和硬件注意事项,分享了确保定位成功的实战经验与稳健的程序框架。

weixin_29057695的博客 488

数据库初级教程:第五讲 创建视图

数据库初级教程:第五讲 创建视图 多即是少,少即是多。数据库的内容是特别多的,因此,从使用者的角度来看, 必须去繁就简,学习最主要的内容,能够直接上手的内容。其它的内容,根据 工作的需求,可以再学习。 在数据表之后,视图是一个很值得讨论的内容,它是依赖于数据表的。视图的作用 有简化查询语句的编写,安全上的屏蔽重要字段等。 从设计的角度上看,数据表更多的考虑是从存储的方便与经济上设计。视图的设计更多 的考虑查询的需求,业务的计算等。 前提条件是你的用户是有创建视图的权限。此外有操作视图依赖的基本表的权

红孩儿编程大师 1147

uniapp - 热更新提示:WGT安装包中manifest.json文件不存在 | unexpected EOF!报错详细解决,完美搞定WGT安装包中WWW目录下manifest.json不存在问题

uniapp,安卓android,苹果ios,热更新,热更新code:-1202报错,,WGT热更新报错,uniapp热更新wgt出现报错manifest.json文件不存,uniapp安卓苹果软件热更新时出现错误unexpected EOF!如何解决,怎么解决热更新wgt报错,app新版本下载安装报错WGT安装包中manifest.json文件不存在,WGT安装包中WWW目录下manifest.json不存在,uniapp热更新报错安装失败[-1201]:WGT/WGTU文件格式错误,uniapp-wgt

✅ 精选推荐文章 1万+

Oracle 视图的创建、使用、删除

视图就是一张或多张表上的预定义查询。视图作用:减少子查询的复杂性;提高运行效率;可以仅提供视图数据,提高数据的安全性。视图以定义的方式存储在数据库中,不占用表空间。查询视图的时候就是执行视图里封装的逻辑,逻辑里用到的表称为基表。提示:以下是本篇文章正文内容,下面案例可供参考。

weixin_42321155的博客 1万+

置顶必读(3) |《滚雪球学SpringBoot》· 高质量专栏介绍,你值得拥有!

《滚雪球学SpringBoot》 并不是普通的技术讲解合集,它是专为开发者精心设计的系统化学习路径。通过不断“滚动学习”,我们将带领你从基础入门到高阶应用,从理解每一行代码到设计和优化大规模分布式系统,最终帮助你成长为一位精通 spring架构 的工程师。

**My Coding Family** 15万+

为JETSON TX2开发板部署YoloV5

参考资料一:nvidia为JETSON Tx2编译的pytorch 参考资料二:Jetson软件包下载 参考资料三:Tx2安装工具的使用 参考资料四: Jetson烧录工具 参考资料五: B站下载的行人视频 一、升级TX2系统版本到最新版(JetPack4.6) 我拿到的板子的版本太低了,在工作的过程中会有很多问题,因此要先升级到最新版 下载参考资料四中的烧录工具,在Ubuntu18.04中安装,只能,必须,一定是Ubuntu18.04 安装完成后使用非root用户启动SDK Manger,登录Nvi.

贱贱的剑 5887

Oracle学习——第六讲(视图、序列和索引)

Oracle 数据库——视图、序列和索引

zhangchuan7758的博客 1270

Windows 下 OpenClaw(小龙虾) 安装全记录:从零到一的保姆级图文教程(持续更新中)

本文主要介绍了Windows 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 步骤一 安装Node.js 2.2 步骤二:安装并配置OpenClaw 2.3 步骤三:配置模型 2.4 步骤四:对话 3. 后续使用步骤

weixin_43178406的博客 16万+

java sql objects_第十五章-简书.sql

-- ## 练习1-- 1. 创建一个视图,通过该视图可以查询到工资在2000-5000内并且姓名中包含有A的员工编号,姓名,工资。create or replace view viewSal2k_5kas select empno,ename,sal from empwhere sal between 2000 and 5000and ename like '%A%';-- 2. 通过上述创建的...

weixin_35730840的博客 530

Windows Docker + RK3588 部署 YOLO26-Pose 人体姿态检测

YOLO26-Pose 在 RK3588 上的部署流程是 Windows Docker 容器内 ONNX 导出 → RKNN 转换(INT8 量化)→ ADB 推送 → 板端 C++ 推理。YOLO26n-Pose 在 640 输入下全链路约 55 FPS,可以覆盖实时姿态检测需求。先在板端用单张图片验证关键点输出正确性,确认 C++ 后处理的解析逻辑无误后,再切换到摄像头实时推理。

m0_64661770的博客 98

【YOLOv11多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案

在网络输入阶段将多模态数据直接合并,形成统一的特征表示。

Limiiiing的博客 1968

oracle 创建视图_Oracle 中视图的创建和处理方法

1 视图简介视图以经过定制的方式显示来自一个或多个表的数据 视图可以视为“虚拟表”或“存储的查询” 创建视图所依据的表称为“基表” 视图的优点有:提供了另外一种级别的表安全性 隐藏的数据的复杂性 简化的用户的SQL命令 隔离基表结构的改变 通过重命名列,从另一个角度提供数据2 创建视图CREATE VIEW stud_viewAS SELECT studno, studname, s...

weixin_39789101的博客 3411

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java创建orcal 视图_Oracle中视图的创建和处理方法

图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。2.用户通过简单的查询可以从复杂查询中得到结果。3....

weixin_42453050的博客 414

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

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

sql创建视图创建主键_Oracle 中视图的创建和处理方法

1 视图简介视图以经过定制的方式显示来自一个或多个表的数据 视图可以视为“虚拟表”或“存储的查询” 创建视图所依据的表称为“基表” 视图的优点有:提供了另外一种级别的表安全性 隐藏的数据的复杂性 简化的用户的SQL命令 隔离基表结构的改变 通过重命名列,从另一个角度提供数据2 创建视图CREATE VIEW stud_viewAS SELECT studno, studname, s...

weixin_32301287的博客 1314

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

oracle创建视图多表,CSS_Oracle中视图的创建和处理方法,视图是基于一个表或多个表或 - phpStudy...

Oracle中视图的创建和处理方法视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。视图是存储在数据字典里的一条select语句。通过创建视图可以提取数据的逻辑上的集合或组合。视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。2.用户通过简单...

weixin_39583623的博客 570
上一篇: Oracle数据库新建用户并为其创建一个视图(示例)
下一篇: Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
javaee_sunny
博客等级 码龄11年 90粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值