oracle 视图,键保留表的含义和使用

1. 视图作用和含义

  视图以经过定制的方式显示来自一个或多个表的数据,可视为虚拟表或存储的查询;创建视图所依据的表被称为基表

视图的优点:
  提供另外一种级别的表安全性;
  隐藏数据的复杂性;
  简化用户sql命令;
  隔离基表结构的改变;
  通过重命名列,从另一个角度提供数据

2. 视图的使用

2.1 创建视图
create [or replace] [force] view 视图名称 as select语法 [with check option] [with read only]

force 即使基表不存在,先行建立视图,待基表建立后,视图可用
在这里插入图片描述

with check option 通过视图进行的修改,必须能通过视图看到修改后的结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

with read only 只读
在这里插入图片描述

2.2 查看视图:
select * from user_views;

在这里插入图片描述

2.3 更新视图

键保留表
  一个复杂视图,若需要出现键保留表则必须保证基表中至少有一张表是有主键的;其次,这两张表在进行关联时(可以是表连接也可以是多表查询,但一定要有关联条件,其关联条件相当于两表的主外键关系),如果关联条件使用主键的话,则外键表为键保留表。

  在视图上可以使用修改数据的DML语句,但有一定限制:只能修改一个底层的基表;对于复杂视图,只能修改键保留表的列,不能更新非键保留表的列;

在这里插入图片描述
在这里插入图片描述

  如果违反基表的约束条件,则无法更新视图;如果视图包含连接操作符、distinct关键字、集合操作符、聚合函数或group by 子句,则无法更新视图;如果视图包含伪列或表达式,则无法更新视图

2.3 删除视图
drop view 视图名
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第一部分sql基础 9 基本查询语句 9 实验1:书写一个最简单的sql语句,查询一张的所有行和所有列 9 实验2:查询一张的所有行,但列的顺序我们自己决定 10 实验3:查询的某些列,在列上使用达式 10 实验4:使用sqlplus,进入sqlplus并进行简单的操作 11 实验5:查看当前用户的所有视图 13 实验6:关于null值的问题 15 实验7:在列上起一个别名 15 实验8:在显示的时候去掉重复的行 16 实验9:显示的部分行和部分列,使用where子句过滤出想要的行 18 实验10:使用like查询近似的值 18 实验11:使用order by子句来进行排序操作 20 实验12:操作字符串的函数 22 实验13:操作数字的函数 25 实验14:操作日期的函数 25 实验15:操作数据为null的函数 31 实验16:分支的函数 32 实验17:分组统计函数 33 实验18:的连接查询 36 实验19:sql99规则的连接操作 40 实验20:子查询 41 DDL和DML语句 45 实验21:建立简单的,并对进行简单ddl操作 45 实验22:dml语句,插入删除和修改的数据 49 实验23:事务的概念和事务的控制 52 实验24:在上建立不同类型的约束 54 实验25:序列的概念和使用 58 实验26:建立和使用视图 60 实验27:查询结果的集合操作 63 实验28:高级分组rollup,cube操作 65 实验29:树结构的查询start with子句 66 实验30:高级dml操作 68 第二部分pl/sql基础 69 匿名块的编写 69 实验31:书写一个最简单的块,运行并查看结果 69 实验32:在块中操作变量 70 实验33:在块中操作的数据 71 实验34:在块中的分支操作if语句 71 实验35:在块中使用循环,三种循环模式 72 实验36:在块中自定义数据类型,使用复合变量 73 实验37:在块中使用自定义游标 76 实验38:在块中处理错误exception 78 编写程序 80 实验39:触发器 80 实验40:编写函数 82 实验41:编写存储过程 83 实验42:编写包package 85 第三部分数据库的体系结构 88 实例的维护 88 实验43:数据库的最高帐号sys的操作系统认证模式 90 实验44:数据库的最高帐号sys的密码文件认证模式 92 实验45:数据库的两种初始化参数文件 92 实验46:启动数据库的三个台阶nomount,mount,open 95 实验47:停止数据库的四种模式 96 实验48:建立数据库 97 实验49:查找你想要的数据字典 99 控制文件 99 实验50:减少控制文件的个数 100 实验51:增加控制文件的个数 101 日志文件 104 实验52:日志文件管理和nologging的实现 107 数据文件 111 实验53:建立新的空间 111 实验54:更改空间的名称,更改数据文件的名称 113 空间 116 实验55:建立临时空间 117 实验56:大文件空间和空间的管理模式 118 数据库的逻辑结构 120 实验57:建立,描述的存储属性 121 实验58:数据库范围extent的管理 128 undo段的管理 134 实验59:数据库自动回退段的管理 135 实验60:数据库手工回退段的管理 136 实验61:通过回退段闪回历史数据 136 实验62:闪回数据的查询方法,以及历史交易 137 —存储数据的最基本单元 138 实验63:rowid的使用 138 实验64:临时和压缩数据使用 141 实验65:压缩存储数据 142 实验66:删除中指定列操作 142 实验67:使用sqlldr加载外部的数据 143 实验68:使用utl_file包来将的数据存储到外部文件 144 实验69:使用外部 145 实验70:处理挂起的事务 146 索引 149 实验71:查看索引的内部信息 151 实验72:监控索引的使用状态 153 约束的管理 154 实验73:改变约束的状态 154 实验74:找到违反约束条件的行 155 Profile配置 156 实验75:管理密码的安全配置 156 实验76:限制会话的资源配置 157 权限管理 158 实验77:维护系统权限 158 实验78:维护对象权限 159 实验79:维护角色 160 实验80:审计 161 数据库字符集 162 实验81:配置国家语言支持 163 元数据 165 实验82:提取元数据dbms_metedata 165 第四部分数据库的网络配置 168 实验83:配置监听 168 实验84:客户端的网络配置 169 实验8

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但行益事莫问前程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值