当前位置: 首页 > news >正文

Oracle视图(基本使用)

视图

视图是通过定制的方式显示一个或者多个表的数据。

视图可以视为“虚拟表”“存储的查询”

视图的优点:

  • 提供了另外一种级别的表安全性
  • 隐藏了数据的复杂性
  • 简化了用户的SQL命令
  • 隔离基表结构的改变
  • 通过重命名列,从另一个角度提供数据。

视图里面不存放数据,是在基表上建立的查询,查询的话会从基表把数据取出返回。

创建视图

sqlplus t1/t1@orcl#查看当前用户所拥有视图
select * from user_views;SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
STUDENT                        TABLE   SQL> desc student;
Name  Type        Nullable Default Comments 
----- ----------- -------- ------- -------- 
SNO   NUMBER(4)   Y                         
SNAME VARCHAR2(2) Y insert into student values(1,'wa');
#创建视图
create view view1 as 
select * from student where sno = 1;select * from user_views;select * from view1;

更新视图

#更新视图
update view1 set sno = 5 where sno = 1;
commit;#注意注意!!!!更新了视图表对应被更新了!!!!
SQL> select * from student;SNO SNAME
----- -----5 wa
#视图查不到东西了!
SQL> select * from view1;SNO SNAME
----- -----

with check option

#创建视图
create view view2 as 
select * from student where sno = 5 with check option;#查询视图
SQL> select * from view2;SNO SNAME
----- -----5 wa#不让修改!with check optin为了不让减少视图结果集的操作
SQL> update view2 set sno = 10 where sno = 5;
update view2 set sno = 10 where sno = 5
ORA-01402: view WITH CHECK OPTION where-clause violation

order by

SQL> create view view3 as 
select * from student order by sno desc;SQL> select * from view3;SNO SNAME
----- -----7 C6 B5 A5 wa

链接视图

SQL> select * from student;SNO SNAME
----- -----1 B2 CSQL> select * from address;ID NAME
--------------------------------------- --------------------1 贵阳2 大连create view view_student_address
asselect s.sname,a.namefrom student s,address awhere s.sno = a.id;SQL> select * from view_student_address;
SNAME NAME
----- --------------------
B     贵阳
C     大连#无法修改与非建值保存表对应的列
#无法修改任何一列,因为数据来自多张表。
#没有键保留表无法更改!
SQL> update view_student_address set name = '河南' where sname = 'B';
update view_student_address set name = '河南' where sname = 'B'
ORA-01779: cannot modify a column which maps to a non key-preserved table

键保留表

drop table student;
drop table department;
create table student(id int,name varchar2(20),deptno varchar2(20));
create table department(deptno varchar2(20),name varchar2(20));
insert into student values(1,'wang','001');
insert into student values(2,'li','001');
insert into student values(3,'zhang','002');
insert into department values('001','人工智能系');
insert into department values('002','软件工程系');
insert into department values('003','ai系');
commit;drop view view_stu_dept;
create view view_stu_dept
as 
select s.id,s.name sname,s.deptno deptno1,d.deptno deptno2,d.name deptname
from student s,department d
where s.deptno = d.deptno;select * from view_stu_dept;

在这里插入图片描述

# 因为student表的ID为主键 可以修改student而不能修改department
# student键保留表 department非键保留表SQL> update view_stu_dept set sname = 'xiaoyi' where id = 1;
update view_stu_dept set sname = 'xiaoyi' where id = 1
ORA-01779: cannot modify a column which maps to a non key-preserved table咳咳:翻车了!问题不大遇到问题需要解决!ALTER TABLE student ADD PRIMARY KEY(id);
ALTER TABLE department ADD PRIMARY KEY(deptno);drop view view_stu_dept;
create view view_stu_dept
as 
select s.id,s.name sname,s.deptno deptno1,d.deptno deptno2,d.name deptname
from student s,department d
where s.deptno = d.deptno;#成功!
update view_stu_dept set sname = 'xiaoyi' where id = 1;
SQL> select * from view_stu_dept;

在这里插入图片描述

# 函数建视图

create view view_student_1 as select id,upper(name) sname from student;SQL> select * from view_student_1;ID SNAME
--------------------------------------- --------------------1 XIAOYI2 LI3 ZHANGselect * from view_student_1 where sname = 'XIAOYI';

删除视图

drop view view_student_1;

在这里插入图片描述

相关文章:

Oracle视图(基本使用)

视图 视图是通过定制的方式显示一个或者多个表的数据。 视图可以视为“虚拟表”或“存储的查询”。 视图的优点: 提供了另外一种级别的表安全性隐藏了数据的复杂性简化了用户的SQL命令隔离基表结构的改变通过重命名列,从另一个角度提供数据。 视图里…...

C++ Primer 类的作用域

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...

【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(上)

【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(上) 2.1 OrCAD X Capture 界面预览2.2 原理图元件符号的组成2.3 原理图库的创建和元件的创建2.4 以 STM32F103T8U6 芯片为例创建元件 全部内容见专栏:【Ca…...

学习数据结构(11)二叉树(堆)下

1.堆的概念 如果有⼀个集合 K {k0&#xff0c;k1&#xff0c;k2&#xff0c;...&#xff0c;k(n-1)} &#xff0c;把它的所有元素按完全二叉树的形式存储在一个一维数组中&#xff0c;并满足&#xff1a;K(i)<2*i1且K(i)<2*i2&#xff08;K(i)>2*i1且K(i)>2*i2&a…...

HarmonyOS NEXT网络状态监听HTTP和RCP请求网络

当我们在HarmonyOS NEXT中开发的应用&#xff0c;基本上都会使用网络请求&#xff0c;从服务端获取数据在客户端显示或者供用户交互&#xff0c;有时候网络发生变化时&#xff0c;我们需要做一些相应的操作&#xff0c;接下来我们一起来了解下在HarmonyOS NEXT下如何监听网络状…...

MySQL数据库(4)—— 数据类型

目录 一&#xff0c;数据类型分类 二&#xff0c;数值类型 2.1 tinyint类型 2.2 bit类型 2.3 float类型 2.4 decimal类型 三&#xff0c;字符串类型 3.1 char类型 3.2 varchar类型 四&#xff0c;时间日期类型 五&#xff0c;enum和set类型 5.1 基本使用 5.2 解释查…...

如何在Odoo 18中创建记录规则Rule

如何在Odoo 18中创建记录规则Rule 记录规则是管理访问控制的关键&#xff0c;它能让你依据用户角色&#xff0c;定义谁可以在系统内查看、创建或修改特定记录。例如&#xff0c;公司中的普通员工只能查看或修改与与自己直接相关的数据&#xff0c;而经理则有权限访问和编辑所有…...

petalinux高版本设置自动登录和开机自启动配置

petalinux-config -c rootfs 依次选择 Image Features -> serial-autologin-root 这是配置 进来就是root权限 创建并安装名为 myapp-init 的新建应用程序 petalinux-create -t apps --template install -n myapp-init --enable 编辑 project-spec/meta-user/recipes-…...

操作系统2.4

一、死锁&#xff0c;饥饿&#xff0c;死循环 死锁&#xff1a;各进程互相等待对方手里的资源&#xff0c;导致各进程都阻塞&#xff0c;无法向前推进的现象 饥饿&#xff1a;由于长期得不到想要的资源&#xff0c;某进程无法向前推进的现象&#xff0c;例如&#xff1a;短进…...

Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek简单调用示例

1. 版本说明 springboot 版本 3.3.8 Java 版本 17 spring-ai 版本 1.0.0-M5 deepseek 模型 deepseek-r1:7b 需要注意一下Ollama的使用版本&#xff1a; 2. springboot项目搭建 可以集成在自己的项目里&#xff0c;也可以到 spring.io 生成一个项目 生成的话&#xff0c;如下…...

解析DrugBank数据库数据|Python

一、DrugBank 数据库简介 DrugBank 是一个综合性的生物信息学和化学信息学数据库&#xff0c;专门收录药物和靶点的详细信息。它由加拿大阿尔伯塔大学的 Wishart 研究组 维护&#xff0c;提供化学、药理学、相互作用、代谢、靶点等多方面的药物数据。DrugBank 结合了实验数据和…...

CUDA Toolkit 历史版本 cuda安装

cuda安装 CUDA Toolkit 版本选择1. NVIDIA-SMI 525.60.11静默安装2. CUDA Toolkit 12.6.0 安装禁用 nouveau依赖安装下载安装 cuda显卡驱动安装成功设置环境变量 3. 安装失败切换到多用户文本模式 参考 CUDA Toolkit 版本选择 CUDA Toolkit 历史版本 1. NVIDIA-SMI 525.60.11 …...

Aseprite详细使用教程(12)——轮廓工具和多边形工具

一、轮廓工具 &#xff08;1&#xff09;核心功能 轮廓生成&#xff1a;给鼠标起点和终点的连线以及两点经过的路径形成的轮廓&#xff0c;可单独指定轮廓颜色。 &#xff08;2&#xff09; 使用方法 选择工具后&#xff0c;鼠标左键点击&#xff0c;按住不松手&#xff0c;拖动…...

macos sequoia 禁用 ctrl+enter 打开鼠标右键菜单功能

macos sequoia默认ctrlenter会打开鼠标右键菜单&#xff0c;使得很多软件有冲突。关闭方法&#xff1a; end...

分布式架构与XXL-JOB

目录 先了解什么是任务调度&#xff1f; 什么是分布式任务调度&#xff1f; 了解XXL-JOB分布式任务调度平台 如何搭建XXL-JOB&#xff1f; 分片广播 作业分片方案 最近学习在项目的媒资管理模块如何高效处理大量视频&#xff0c;上传单个视频可能涉及到转码&#xff0c…...

leetcode day18 移除元素 26+283

26 删除有序数组中的重复项 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元…...

【HarmonyOS Next】鸿蒙监听手机按键

【HarmonyOS Next】鸿蒙监听手机按键 一、前言 应用开发中我们会遇到监听用户实体按键&#xff0c;或者扩展按键的需求。亦或者是在某些场景下&#xff0c;禁止用户按下某些按键的业务需求。 这两种需求&#xff0c;鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的…...

用Deepseek查询快证API-物流查询-实名认证-企业实名认证

快证API可能是一个提供多种验证和查询服务的平台&#xff0c;包括但不限于企业实名认证、短链接生成、手机号归属地查询、IP地址查询等。以下是根据搜索结果整理的关于快证API的相关信息&#xff1a; ‌企业实名认证API‌&#xff1a; 功能&#xff1a;通过与企业相关数据库进行…...

一个简洁高效的Flask用户管理示例

Flask-Login 是 Flask 的用户管理扩展&#xff0c;提供 用户身份验证、会话管理、权限控制 等功能。 适用于&#xff1a; • 用户登录、登出 • 记住用户&#xff08;“记住我” 功能&#xff09; • 限制未登录用户访问某些页面 • 用户会话管理 1. 安装 Flask-Login pi…...

分布式之分布式ID

目录 需求 1. 全局唯一性 2. 高性能 3. 高可用性 4. 可扩展性 5. 有序性 6. 时间相关 7. 长度适中 8. 安全性 9. 分布式一致性 10. 易于集成 常见解决方案 选择依据 数据库号段模式 核心概念 工作流程 优点 缺点 实现示例 优化策略 适用场景 Snowflake雪…...

5分钟终极指南:KMS_VL_ALL_AIO智能激活脚本如何一键激活Windows和Office

5分钟终极指南&#xff1a;KMS_VL_ALL_AIO智能激活脚本如何一键激活Windows和Office 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活而烦恼吗&#xff1f;每次重装系统后都…...

CIMPro孪大师:国产数字孪生引擎核心功能解析

在数字孪生技术从概念走向规模化应用的今天&#xff0c;其底层引擎的能力直接决定了上层应用的广度与深度。一款优秀的国产数字孪生引擎&#xff0c;不应仅是国外技术的模仿者&#xff0c;而应在核心功能架构上有所创新与突破&#xff0c;以应对中国本土复杂的工业与城市数字化…...

【变压器】中压直流变压器松磁耦合结构分析Matlab实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

别再只用BBox了!用自然语言描述,让AI更懂你想跟踪什么(附LaSOT/TNL2K数据集实战)

自然语言驱动的视觉目标跟踪&#xff1a;超越BBox的下一代交互范式 在计算机视觉领域&#xff0c;目标跟踪技术已经发展了数十年&#xff0c;但大多数系统仍然依赖第一帧的边界框(BBox)作为初始输入。这种机械式的交互方式与人类描述目标的自然习惯相去甚远——当我们向他人描述…...

从ARM架构到台积电工艺:手把手教你读懂手机芯片发布会上的‘黑话’

从ARM架构到台积电工艺&#xff1a;手把手教你读懂手机芯片发布会上的‘黑话’ 每次手机新品发布会&#xff0c;厂商总爱用一堆专业术语轰炸观众——"X3超大核性能提升25%"、"全球首发4nm工艺"、"LPDDR5X内存带宽翻倍"。这些看似高大上的参数&a…...

绿色循环经济下的农业新范式:让每一株蔬菜的“遗骸”化作新生

在山东临沂的兰陵县&#xff0c;一场关于农业废弃物资源化利用的变革正在发生。曾经令人头疼的农业秸秆和牛粪&#xff0c;如今正成为驱动当地蔬菜育苗产业的全新动力。这一变化的起点&#xff0c;是2023年9月正式投产的生升鸿强基质工厂。这家总投资1.1亿元的工厂&#xff0c;…...

Java多租户数据泄露事故频发?3个被90%团队忽略的隔离漏洞,今天必须修复

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Java多租户数据泄露事故的严峻现实 近年来&#xff0c;Java生态中基于Spring Boot构建的SaaS平台频发跨租户数据泄露事件——根本原因并非加密缺失&#xff0c;而是租户隔离逻辑在数据访问层被意外绕过…...

别再手动备份了!GitLab服务器自动备份与清理脚本保姆级教程(CentOS 7.6)

GitLab服务器自动化备份与清理实战指南&#xff1a;解放运维生产力的终极方案 当你的团队已经习惯GitLab带来的高效代码协作时&#xff0c;突然遭遇硬盘故障导致项目历史版本全部丢失的噩梦场景&#xff0c;这种技术债务往往需要整个团队数周时间才能偿还。作为经历过三次数据灾…...

如何用CheatEngine-DMA插件实现终极内存修改:完整实战指南

如何用CheatEngine-DMA插件实现终极内存修改&#xff1a;完整实战指南 【免费下载链接】CheatEngine-DMA Cheat Engine Plugin for DMA users 项目地址: https://gitcode.com/gh_mirrors/ch/CheatEngine-DMA CheatEngine-DMA是一款专为DMA&#xff08;直接内存访问&…...

告别受限:用ViWizard Apple Music Converter,真正拥有你喜欢的音乐

在数字音乐时代&#xff0c;Apple Music 凭借海量曲库和高品质音质&#xff0c;成为了无数人的首选。但你有没有遇到过这样的困扰&#xff1a;明明付了会员费&#xff0c;下载好的歌曲一旦停止续费&#xff0c;就全部变成灰色无法播放&#xff1b;或者想在朋友的智能音箱、旧款…...