博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视图的定义、更新、撤销
阅读量:5272 次
发布时间:2019-06-14

本文共 724 字,大约阅读时间需要 2 分钟。

SQL数据库结构

基本表是实际存储于存储文件中的表,基本表中的数据是需要存储的。

视图在SQL中只存储其由基本表导出视图所需要的公式,即由基本表产生视图的映像信息,其数据并不存储,而是在运行过程中动态产生与维护的。

对视图数据的更改最终要反映在对基本表的更改上。

视图的定义

视图需要“先定义,在使用”

定义视图

CREATE VIEW view_name[(列名[,列名]...)]as 子查询[with check option]

如果视图的属性名缺省,则默认为子查询结果中的属性名;也可以显示指明其所拥有的的列名。

with check option指明当对视图进行insert、update、delete时,要检查进行insert、update、delete的元组是否满足视图定义中子查询中定义的条件表达式

SQL视图更新

视图更新是比较复杂的问题,因视图不保存数据,对视图的更新最终要反映到对基本表的更新上,而有时,视图定义的映射是不可逆的

SQL视图更新的可执行性

  1. 如果视图的SELECT目标列包含聚集函数,则不能更新
  2. 如果视图的SELECT子句使用了uniquedistinct,则不能更新
  3. 如果视图中使用了group by子句,则不能更新
  4. 如果视图中包括经算术表达式计算出来的列,则不能更新
  5. 如果视图是由单个表的列构成的,但并没有包括主键,则不能更新
  • 对于由单一Table子集构成的视图,即如果视图是从单个基本表使用选择、投影操作导出的,并且包含了基本表的主键,则可以更新

视图的撤销

DROP VIEW view_name

转载于:https://www.cnblogs.com/velscode/p/10576830.html

你可能感兴趣的文章
程序存储问题
查看>>
优雅地书写回调——Promise
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>
Windows 2003全面优化
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
我的Hook学习笔记
查看>>
js中的try/catch
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
整理推荐的CSS属性书写顺序
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
0320-学习进度条
查看>>
MetaWeblog API Test
查看>>