视图

简介: 一、概述 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候,只是重新执行SQL。优点 1、可以限制用户只能通过视图检索数据。

一、概述

视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候,只是重新执行SQL。

优点

1、可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。

2、可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。

3、限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。

4、从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

一、创建 & 修改

1、需要权限:

  a) 用户必须具有create view系统权限;

  b) 要在其他方案中创建视图,用户必须具有create any view系统权限

2、语法:

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
  [(alias[, alias]...)]
 AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY [CONSTRAINT constraint]];

3、参数说明

  a) OR REPLACE:如果视图已经存在,则替换旧视图。

  b) FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

  c) NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

  d) WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

二、删除

DROP VIEW <view_name>;

三、可更新视图

1、了解更新原理

  第一步:将针对视图的SQL语句与视图的定义语句(保存在数据字典中)“合并”成一条SQL语句

  第二步:在内存结构的共享SQL区中“解析”(并优化)合并后的SQL语

  第三步:“执行”SQL语句

2、查询视图“可更新”(包括“增删改”)的列

  a) dba_updatable_columns——显示数据库所有视图中的所有列的可更新状态

  b) all_updatable_columns——显示用户可访问的视图中的所有列的可更新状态

  c) user_updatable_columns——显示用户拥有的视图中的所有列的可更新状态

四、查询视图信息

使用数据字典视图

1、dba_views——DBA视图描述数据库中的所有视图
2、all_views——ALL视图描述用户“可访问的”视图
3、user_views——USER视图描述“用户拥有的”视图 
4、dba_tab_columns——DBA视图描述数据库中的所有视图的列(或表的列)
5、all_tab_columns——ALL视图描述用户“可访问的”视图的列(或表的列)
6、user_tab_columns——USER视图描述“用户拥有的”视图的列(或表的列) 
目录
相关文章
|
Rust JavaScript 前端开发
【一起学Rust】Rust介绍与开发环境搭建
【一起学Rust】Rust介绍与开发环境搭建
359 0
|
C++ C语言 JavaScript
72B、1.8B、Audio模型
72B和1.8B是两个不同的模型,具体区别如下: - 72B是一个相对较大的模型,拥有72个亿个参数,而1.8B只有180亿个参数。
720 4
|
关系型数据库 MySQL 数据库
实现淘宝母婴订单实时查询和实时大屏
本场景中订单和婴儿信息存储在MySQL中,使用Flink实时把它写到Elasticsearch中;数据经过分组聚合后,计算出订单数量和婴儿出生的关系,实时展示到Kibana大屏中。
|
11月前
|
机器学习/深度学习 人工智能 并行计算
量子计算与人工智能:智能革命的新动力
量子计算与人工智能的结合正成为推动社会进步和产业升级的重要力量。量子计算利用量子比特实现高效并行计算,而人工智能则在语音、图像识别等领域取得显著成果。两者结合可加速模型训练、提高计算效率和优化算法,为医疗、智能制造等领域带来深远影响。尽管面临技术成熟度和跨学科人才培养等挑战,但其巨大潜力预示着未来的智能革命。
|
10月前
|
调度 开发者
深入理解:进程与线程的本质差异
在操作系统和计算机编程领域,进程和线程是两个核心概念。它们在程序执行和资源管理中扮演着至关重要的角色。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
258 5
|
12月前
|
存储 边缘计算 物联网
阿里云物联网平台:推动万物互联的智能化解决方案
随着物联网技术的快速发展,阿里云物联网平台为企业提供了一体化的解决方案,包括设备接入、数据管理和智能应用等核心功能。平台支持海量设备接入、实时数据采集与存储、边缘计算,并具备大规模设备管理、高安全性和开放生态等优势。广泛应用于智能制造、智慧城市和智能家居等领域,助力企业实现数字化转型。
1316 5
|
存储 编解码 分布式计算
简单说一下阿里云OSS在哪些应用场景里应用。
简单说一下阿里云OSS在哪些应用场景里应用。
1138 0
|
算法 数据挖掘
不用再往下划,信息熵(Entropy)概念及应用(附视频)都在这里啦!
不用再往下划,信息熵(Entropy)概念及应用(附视频)都在这里啦!
742 0
不用再往下划,信息熵(Entropy)概念及应用(附视频)都在这里啦!
|
新零售 前端开发
DDD之于逛逛内容营销中的应用
DDD指的是Domain-Driven Design 即领域驱动设计,DDD并不是关于技术的,而是关于讨论,聆听,理解和发现业务价值。DDD让我们的关注点向软件系统所提供的业务价值方向思考。 DDD最大的好处是:接触到需求第一步就是考虑领域模型,DDD让你首先考虑的是业务语言,而不是数据和行为。
DDD之于逛逛内容营销中的应用
|
Shell 开发工具 开发者
Windows 11和vscode终端美化
允许powershell执行脚本,如果不允许的话,后续执行安装命令会报错 设置->隐私和安全性->开发者选项->powershell,点击应用 一款 Nerd Font,Nerd Font字体中包含了很多特殊的图标,如果不使用Nerd Font的话,后面设置了终端的主题后会乱码 这里我以Hasklig字体为例,下载链接。下载后会得到个Hasklig.zip的文件,解压后可以看到里面包含了很多字体。直接ctrl + A,然后右键选择安装全部字体
976 0