数据库视图注意事项

news2024/11/17 16:40:34

视图(view)是一种虚拟存在的表,其内容由查询定义 本身并不包含数据。
它是作为一个select语法查询到的结果集,以此为基表创建的一张虚拟表 基表

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成
[视图中的数据发送了改变,原始表中的数据也会变化,原始表中的数据发生了变化视图中的数据也会变化]
目的
安全原因 隐藏部分列信息
化繁从简 多表转成单表显示
语法
CREATE VIEW <视图名>[(列名组)]AS <子查询>
DROP VIEW <视图名>

TODO 物化视图

授权 请 以 system 用户操作

grant create view to scott;

创建视图

create or replace view v_classinfo as select * from classinfo;

查询视图

select * from v_classinfo;

更改视图数据

insert into v_classinfo values( 1004, 'YC04班'); -- 违反唯一约束条件
insert into v_classinfo values( 1005, 'YC05班'); -- 可以插入数据

同步到基表数据 反之 同理

select * from classinfo;

视图得字段定义别名

create or replace view v_classinfo(班级名) as select cname from classinfo;
-- 主键 和 not null列 如果没出现在视图中 也不能进行插入操作 
insert into v_classinfo values( 'YC06班'); 

检查视图

create or replace view v_classinfo(班级班号, 班级名)
as select cid, cname from classinfo where cname = 'YC07班'
with check option -- 第一次不加  插入失败

-- 不加  with check option   数据插入到基表中 但是视图中不存在 
insert into v_classinfo values( 1006, 'YC06班'); 

-- 加with check option 当满足 where条件从能插入视图中 
insert into v_classinfo values( 1007, 'YC07班');

只读视图

create or replace view v_classinfo(班级班号, 班级名)
as select cid, cname from classinfo where cname = 'YC08班'
with read only; 
insert into v_classinfo values( 1008, 'YC08班'); --  限制插入  该视图只读 不能更新

select * from v_classinfo;
select * from classinfo;
– 查询部门编号20的 所有员工存储在视图中
create or replace view vw_emp_dept_20 as
select empno, ename, sal, e.deptno, dname from emp e, dept d where e.deptno = d.deptno and e.deptno = 20;

select * from vw_emp_dept_20;

– ORA-01779:无法修改与非键值保存表对应的列
update vw_emp_dept_20 set sal = 10000 where empno = 7788;

– 删除视图
drop view v_classinfo;

ORA-01733此处不允许虚拟列-只读视图无法更新

在这里插入图片描述

ORA-01402视图WITH CHECK OPTIDN where子句违规
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/149701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ReadPaper学术交流会】结构重参数化

提出结构重参数化的论文RepVGG 重参数化已经用在了各个领域的各个方面&#xff1a;比如YOLO-V6,YOLO-V7,可以autoperform YOLO-V6和YOLO-V7的一个PP-YOLO 1 我们想要一个像VGG一样的全是3*3卷积&#xff0c;一卷到底的结构&#xff0c;这样的结构并行度高、速度快而且省显存。…

剑指offer----C语言版----第十三天

目录 1. 删除链表的节点 1.1 题目描述 1.2 Leetcode解题的思路一&#xff08;双指针&#xff09; 1.3 Leetcode解题的思路二&#xff08;单指针&#xff09; 1.4 剑指offer上的原题 1. 删除链表的节点 原题链接&#xff1a;剑指 Offer 18. 删除链表的节点 - 力扣&#xff…

【python】类型约束(类型提示的作用)

文章目录前言一、类型系统1.动态类型2.静态类型3.鸭子类型二、变量注解1.变量注解的语法2.注解鸭子类型三、复杂&#xff08;复合型&#xff09;变量的注解1.引入2.难题3. Any的妙用4.类型变量5.类型Optional总结前言 python是一种解释型强类型动态语言python3.5以前是没有类型…

【Python】基于高德地图API的坐标转换函数

【Python】基于高德地图API的坐标转换函数 API申请&#xff1a; lbs.amap.com/api/webservice/guide/api/convert/产品介绍 坐标转换是一类简单的HTTP接口&#xff0c;能够将用户输入的非高德坐标&#xff08;GPS坐标、mapbar坐标、baidu坐标&#xff09;转换成高德坐标。 …

【学习笔记之Linux】权限之目录权限与默认权限

权限概念 一件事是否允许被谁“做”&#xff0c;这就是权限。权限 用户 文件属性。   在Linux上&#xff0c;用户分为普通用户和root。root是超级管理员 ≈ 天王老子&#xff0c;只能够有一个。root的命令提示符是#&#xff1b;普通用户通过root创建&#xff0c;可以有多个…

【Android安全】Protobuf原理与解析

protobuf 简介 抓包时看到header中有这个&#xff1a; content-type: application/x-protobuf说明包的content是以protobuf格式编码的 关于protobuf的介绍&#xff0c;可以参考&#xff1a; https://techkranti.com/what-is-protobuf-explained-for-hackers/ protobuf 的背…

C++——类和对象(一)

目录 一. 面向过程和面向对象 二. 类的引入 三. 类的定义 1.结构 2.类的作用域 3.类的两种定义方式 四. 类的访问限定符及封装 1.引入 2.访问限定符 3.封装 五. 类的实例化 六. 类对象模型 七. this指针 1.this指针的引出 2.this指针的特性 一. …

JavaScript设计模式之面向对象编程

为了深入地学习 javascript &#xff0c;奔着一名标准 Web 开发人员的标准&#xff0c;想要深入了解一下面向对象的编程思想&#xff0c;提高自己模块化开发的能力&#xff0c;编写可维护、高效率、可拓展的代码&#xff0c;最近一直拜读 《JavaScript设计模式》 &#xff0c;对…

【LeetBook】二叉树

参考资料&#xff1a;LeetBook / 二叉树 前言 差不多的解题思路就是dfs能够解决&#xff0c;其次就是bfs。 主要是递归的解法。 一刷就是了解了 解题的 思路 后序再补一些二叉树的题再刷一刷 目录树的介绍树的遍历前序遍历中序遍历后序遍历层序遍历(广度优先搜索)递归解决问题“…

【FPGA】中值滤波处理BMP图片

文章目录一、中值滤波二、BMP图片格式三、功能实现1.代码设计思路2.shift IP核3.代码实现四、结果测试参考博客一、中值滤波 中值滤波法是一种非线性平滑技术&#xff0c;它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。 中值滤波是基于排序统计理论…

【GO】K8s 管理系统项目[API部分--Ingress]

K8s 管理系统项目[API部分–Ingress] 1. 接口实现 service/dataselector.go import ("sort""strings""time"appsv1 "k8s.io/api/apps/v1"corev1 "k8s.io/api/core/v1"nwv1 "k8s.io/api/networking/v1" )// Ing…

JavaScript client screen offset scroll

文章目录JavaScript client screen offset scrollclientX和clientY、offsetX和offsetY、screenX和screenY、pageX和pageYclientWidth、offsetWidth、scrollWidthwindow.outerWidth、window.innerWidth、document.documentElement.clientWidthJavaScript client screen offset s…

【开发工具】Gradle的安装 与 配置环境变量

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Gradle安装配置教程一、安装Gradle二、配置环境…

C++: Essential C++ 读书笔记:面向过程编程:调用函数。

1&#xff1a;传值和传址区别 按值传递&#xff1a; 在调用函数中将原函数的值拷贝一份过去给被调用的函数&#xff0c;在被调用函数中对该值的修改&#xff0c;不会影响原函数的值。值传递&#xff0c;变量赋值&#xff0c;修改变量的值------修改的是新地址&#xff08;复制地…

智能家居加速落地,景联文科技提供数据采集标注服务

“以AI驱动智能家居&#xff0c;智能家庭助手和智能家居安防同向发展的智能物联网是目前主流趋势。高质量的标注数据能够高效训练算法&#xff0c;加速应用落地。景联文科技为相关企业提供、智能语音助手、人脸识别、指纹识别门禁系统、非法闯入检测、扫地机器人智能终端控制等…

临床资料研究中的风险因素评估相关指标

前言 写这篇文章是因为最涉及的医学相关的项目比较多&#xff0c;有些常常遇到的概念容易混淆&#xff0c;在这里着重区分一下。&#xff08;感谢广大学霸的分享&#xff09; 1. Ratio 与Rate 的区别 Ratio&#xff1a;表示相对比&#xff0c;简单理解为一个数值相对于另一个…

【1】高危漏洞利用工具 (2023.1.6更新)-- Apt_t00ls

0x01 工具介绍增加CNVD-2023-00895包括&#xff1a;泛微、蓝凌、用友、万户、致远、通达、中间件、安全设备等多个高位漏洞。泛微: e-cology workrelate_uploadOperation.jsp-RCE (默认写入冰蝎4.0.3aes) e-cology page_uploadOperation.jsp-RCE (暂未找到案例 仅供检测poc) e-…

Vivado综合属性之ASYNC_REG

本文验证了综合属性ASYNC_REG对寄存器位置的影响。 ASYNC_REG用于单bit信号采用双&#xff08;或多&#xff09;触发器实现异步跨时钟域的场合&#xff0c;此时所有用于同步的触发器都要标记ASYNC_REG。标记方式为&#xff1a; (* ASYNC_REG "TRUE" *) reg sync_0…

想在2023 年成为前端 Web 开发人员的分步指南

当我开始成为一名前端开发人员时&#xff0c;这是我希望拥有的路线图我想出了这个路线图&#xff0c;它有助于实现成为全能开发人员的目标。让我们开始吧。谁是前端开发人员&#xff1f;好的&#xff0c;现在谁是后端开发人员&#xff1f;那么如何成为一名前端开发人员呢&#…

Java 集合练习题

SourceURL:file:///home/windstorm/Documents/JAVA/JavaCoursePractise/Java 集合练习题.docx 答案&#xff1a; import java.lang.reflect.Array; import java.security.cert.CollectionCertStoreParameters; import java.util.*; public class Main { public static voi…