7.Oracle视图创建与使用
1、视图的创建与使用
在所有进行的SQL语句之中,查询是最复杂的操作,而且查询还和具体的开发要求有关,那么在开发过程之中,程序员完成的并不是是和数据库的所有内容,而更多的是应该考虑到程序的设计结构。可以没有一个项目里边不会包含有复杂查询,那么程序员如何从复杂查询中解脱出来呢?
所以在这种情况下就提出了视图的概念。利用视图可以实现复杂SQL语句封装操作
所以视图的创建需要使用如下语法完成:
create [or replace] view 视图名称 as 子查询
1.1 范例1:创建视图
范例1: 创建视图,下面这条语句的作用就是希望将10部门的所有雇员信息保存在视图之中
create view myview as select * from emp where deptno=10;
注意:在Orcale 10g及之前的版本,scott用户是可以直接进行视图创建的,但是从Oracle 10g r2版本开始,如果想要创建视图,那么就需要单独分配创建视图的权限
1.2 范例2:查询视图
select * from myview;
发现查询视图与之前直接使用select查询结果是完全相同的,所以视图就包装了SQL语句,而开发者可以通过视图简单地查询到所需要的数据
于是下面可以继续利用视图包装一个复杂的SQL
drop view myview;
create view myview
as
select d.deptno,d.dname,d.loc,temp.count
from dept d,(select deptno,count(*) count
from emp
group by deptno) temp
where d.deptno=temp.deptno(+);
由于myview视图名称已经被占用了,所以理论上应该先删除,而后再创建一个新的视图。可以是删除和创建之间有可能产生间隔。所以在实际之中,由于视图使用频率较高,而且直接与开发有关系,那么一般情况下不会选择删除后再重新创建,而是选择进行视图的替换。利用新的查询替换掉旧的查询。
create or replace view myview
as
select d.deptno,d.dname,d.loc,temp.count
from dept d,(select deptno,count(*) count
from emp
group by deptno) temp
where d.deptno=temp.deptno(+);
1.3 范例3:更新视图
实际上视图中只是包含有查询语句的临时数据,并不是真是存在的,可以在默认情况下创建的视图是可以直接进行修改操作的
create or replace view myview
as
select * from emp where deptno=20;
更新视图中数据的部门编号(视图的存在条件)
update myview set deptno=30 where empno=7369;
发现此时更新了视图,结果导致emp表中的内容也发生了变化。所以为了保证视图的创建条件不能够被更新,则可以在创建视图的时候使用withcheck option子句
回滚一下 回复以前数据
rollback
接着在之前视图的基础上加上withcheck option 子句
create or replace view myview
as
select * from emp where deptno=20
with check option;
此时使用了withcheck option 子句可以保证视图的创建条件不被更新,如果使用了更新,则将出现如下的错误
1.4 范例4: 修改其他字段
update myview set sal=80000 where empno=7369;
此时的操作的成功了,发现视图更新时,改变的是数据表中的数据,那么这样的做法同样也是不合理的。就好比给你发的一张工资条,你不满意,改成了80000,然后数据库的数据就变了,那多神奇啊
所以一般在创建视图的时候,由于里面都属于映射的数据,那么本质上就不建议其进行修改,最好的视图就是创建一个只读视图。使用with read only 子句完成
create or replace view myview
as
select * from emp where deptno=20
with read only;
相关文章:
7.Oracle视图创建与使用
1、视图的创建与使用 在所有进行的SQL语句之中,查询是最复杂的操作,而且查询还和具体的开发要求有关,那么在开发过程之中,程序员完成的并不是是和数据库的所有内容,而更多的是应该考虑到程序的设计结构。可以没有一个项…...
rust学习-不安全操作
在 Rust 中,不安全代码块用于避开编译器的保护策略 四种不安全操作 解引用裸指针通过 FFI (Foreign Function Interface,外部语言函数接口)调用函数调用不安全的函数内联汇编(inline assembly)解引用裸指针 原始指针(raw pointer,裸指针)* 和引用 &T 有类似的功…...
RHCE——八、DNS域名解析服务器
RHCE 一、概述1、产生原因2、作用3、连接方式4、因特网的域名结构4.1 拓扑4.2 分类4.3 域名服务器类型划分 二、DNS域名解析过程1、分类2、解析图:2.1 图:2.2 过程分析 三、搭建DNS域名解析服务器1、概述2、安装软件3、/bind服务中三个关键文件4、配置文…...
flink cdc初始全量速度很慢原因和优化点
link cdc初始全量速度很慢的原因之一是,它需要先读取所有的数据,然后再写入到目标端,这样可以保证数据的一致性和顺序。但是这样也会导致数据的延迟和资源的浪费。flink cdc初始全量速度很慢的原因之二是,它使用了Debezium作为捕获…...
论文笔记: MOGRIFIER LSTM
2020 ICLR 修改传统LSTM 当前输入和隐藏状态充分交互,从而获得更佳的上下文相关表达 1 Mogrifier LSTM LSTM的输入X和隐藏状态H是完全独立的 机器学习笔记:GRU_gruc_UQI-LIUWJ的博客-CSDN博客这篇论文想探索,如果在输入LSTM之前…...
Angular中使用drag and drop实现文件拖拽上传,及flask后端接收
效果:拖拽文件到组件上面时 边框变大变红 松手后发送到服务器(或者点击蓝字手动选择文件)并且把文件名显示在框内,美化还没做 html <div class"drapBox"><div id"drop" (dragenter)"dragenter($event)" (dragov…...
Spring Authorization Server入门 (十六) Spring Cloud Gateway对接认证服务
前言 之前虽然单独讲过Security Client和Resource Server的对接,但是都是基于Spring webmvc的,Gateway这种非阻塞式的网关是基于webflux的,对于集成Security相关内容略有不同,且涉及到代理其它微服务,所以会稍微比较麻…...
配置Flink
配置flink_1.17.0 1.Flink集群搭建1.1解压安装包1.2修改集群配置1.3分发安装目录1.4启动集群、访问Web UI 2.Standalone运行模式3.YARN运行模式4.K8S运行模式 1.Flink集群搭建 1.1解压安装包 链接: 下载Flink安装包 解压文件 [gpbhadoop102 software]$ tar -zxvf flink-1.1…...
39、springboot的前端静态资源的WebJar支持(bootstrap、jquery等)及自定义图标和首页
★ WebJar支持 Spring Boot支持加载WebJar包中的静态资源(图片、JS、CSS), WebJar包中的静态资源都会映射到/webjars/**路径。——这种方式下,完全不需要将静态资源复制到应用的静态资源目录下。只要添加webjar即可。假如在应用的…...
【图论】缩点的综合应用(一)
一.缩点的概念 缩点,也称为点缩法(Vertex Contraction),是图论中的一种操作,通常用于缩小图的规模,同时保持了图的某些性质。这个操作的目标是将图中的一些节点合并为一个超级节点,同时调整相关…...
C++—纯虚函数
一、前言 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义函数为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数为纯虚函数,才代表函数没有被实现。 定义纯虚函数是为了实现一个接口,起到一个规范的作用&…...
经过卷积神经网络之后的图片的尺寸如何计算
经过卷积神经网络(Convolutional Neural Network,CNN)处理后,图片的尺寸会发生变化,这是由于卷积层、池化层等操作引起的。计算图片经过卷积神经网络后的尺寸变化通常需要考虑卷积核大小、步幅(stride&…...
Java升级JDK17(更高版本同理),修改maven
记住三个网址就行:下面这个是oracle的 Java Platform, Standard Edition 17 ReferenceImplementations https://www.oracle.com/java/technologies/downloads/#jdk17-windows 另外一个 redhat旗下的:这个是开源的(推荐这个!&am…...
Go测试之.golden 文件
Go测试中的.golden 文件是干什么用的?请举例说明 在Go语言中,.golden文件通常用于测试中的黄金文件(golden files)。黄金文件是在测试期间记录预期输出结果的文件。测试用例运行时,黄金文件用于比较实际输出与预期输出…...
回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GA-RF遗传算法优化随机森林算法多输入单输出回归预测(多指标,多图)效果一览基本介绍程…...
springboot整合rabbitmq死信队列
springboot整合rabbitmq死信队列 什么是死信 说道死信,可能大部分观众大姥爷会有懵逼的想法,什么是死信?死信队列,俗称DLX,翻译过来的名称为Dead Letter Exchange 死信交换机。当消息限定时间内未被消费,…...
高中信息技术教资考试模拟卷(22下)
2022 年下半年全国教师资格考试模考卷一 (高中信息技术) 一、单项选择题(本大题共 15 小题,每小题 3 分,共 45 分) 1.2006 年 10 月 25 日,深圳警方成功解救出一名被网络骗子孙某…...
Linux中shadow及passwd格式内容解析
/etc/passwd文件包括Linux账号信息,示例如下: root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin 具体格式 用户名࿱…...
计算机视觉 – Computer Vision | CV
计算机视觉为什么重要? 人的大脑皮层, 有差不多 70% 都是在处理视觉信息。 是人类获取信息最主要的渠道,没有之一。 在网络世界,照片和视频(图像的集合)也正在发生爆炸式的增长! 下图是网络上…...
2.Redis 通用命令
Redis 中最核心的两个命令: set 作用:设置 key 对应的 value 值并存储进去。若key已包含一个值,则无论其类型如何,都会覆盖该值。在SET操作成功时,将丢弃与密钥相关联的任何先前生存时间。 对于上述这里的 key和val…...
深入解析IoU(Jaccard系数)在目标检测中的关键作用与高效实现
1. IoU究竟是什么?从基础概念到视觉理解 第一次接触目标检测时,我对着论文里满屏的"IoU"缩写发懵——这到底是个什么魔法指标?后来在调试YOLO模型时才发现,这个看似简单的比值,实际上是整个检测任务的基石性…...
终极bilibili视频解析指南:三步实现免费高效下载方案
终极bilibili视频解析指南:三步实现免费高效下载方案 【免费下载链接】bilibili-parse bilibili Video API 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse bilibili视频解析工具bilibili-parse为技术爱好者和普通用户提供了一套完整的视频资源…...
PFC 2D二维直剪代码解析与源文件分享
PFC 2D 二维直剪,代码逐行解释,提供源文件。 。 嘿,各位岩土工程或者离散元爱好者们!今天咱来唠唠PFC 2D里二维直剪的事儿,顺便把代码给大家扒一扒,逐行解释清楚,最后源文件也双手奉上ÿ…...
Android日志记录终极指南:如何用Timber提升开发效率
Android日志记录终极指南:如何用Timber提升开发效率 【免费下载链接】timber JakeWharton/timber: 是一个 Android Log 框架,提供简单易用的 API,适合用于 Android 开发中的日志记录和调试。 项目地址: https://gitcode.com/gh_mirrors/ti/…...
3步打造智能文献库:Ethereal Style效率倍增指南
3步打造智能文献库:Ethereal Style效率倍增指南 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员和学者。 项目地址: https…...
吃透Linux/C++系统编程:文件与I/O操作从入门到避坑
合集 - LLM应用实战(17) 1. LLM应用实战:当KBQA集成LLM(二) 2024-04-25 2. LLM应用实战:当KBQA集成LLM 2024-04-11 3. LLM实战:LLM微调加速神器-Unsloth LLama3 2024-05-14 4. LLM实战:LLM微调加速神器-Unsloth Qwen1.5 2024-05…...
拯救你的机械键盘:3步告别按键连击烦恼
拯救你的机械键盘:3步告别按键连击烦恼 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 你是否曾经在打字时突然发现屏幕上出…...
避开这些坑!微软云语音合成API从申请到调用的保姆级指南
微软云语音合成API实战:从零到落地的全流程避坑指南 第一次听到微软云的语音合成效果时,我正为一个智能客服项目焦头烂额。当时试用了市面上几乎所有主流方案,要么机械感明显,要么情感表达生硬。直到偶然点开微软的演示页面&#…...
别再只调PWM了!手把手教你优化STM32智能小车的红外循迹算法(五路传感器实战)
五路红外循迹算法进阶:从基础判断到PID控制的实战优化 当你看着自己组装的智能小车在赛道上磕磕绊绊地前行,时而冲出边界,时而左右摇摆,是否想过那些比赛场上流畅飞驰的小车究竟隐藏着什么秘密?本文将带你突破简单的i…...
Go Context 生命周期与取消信号传播
Go Context 生命周期与取消信号传播 在Go语言中,Context是控制并发任务生命周期的核心工具,它通过树状结构管理取消信号、超时和截止时间,确保资源高效回收与任务协同。无论是微服务调用、数据库查询还是HTTP请求,Context都能优雅…...
