当前位置: 首页 > 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雪…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...