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

常见数据库对象与视图VIEW

常见的数据库对象

表 TABLE

数据字典

约束 CONSTRAINT

视图 VIEW

索引 INDEX

存储过程 PROCESS

存储函数 FUNCTION

触发器  TRIGGER

视图VIEW

1、引入

为什么使用视图?

视图可以帮助我们使用表的一部分,针对不同的用户制定不同的查询视图。

对视图作出的修改,相当于在表中作出修改,可以得到及时的反馈。

2、视图的理解

视图是一种虚拟表,本身不存储数据,占用很少内存空间。它是SQL中的一个重要概念。

视图建立在已有表的基础上,视图赖以建立的这些表称为基表

视图是向用户提供基表数据的一种表现形式,一般情况下,小型项目的数据库可以不使用视图,但大型项目中,视图具有无可替代的价值。

关于视图操作的特点:

(1)视图的创建和删除只影响视图本身,不影响对应的基表

(2)对视图中的数据进行增删改操作时,数据表中的数据会发生相应的变化。反之亦然。

(3)向视图提供数据内容的语句为SELECT语句,可以将试图理解为存储起来的SELECT语句。

视图操作的优点:简化查询,控制数据的访问。

3.创建视图

①单表的视图创建

CREATE VIEW 视图名

AS

SELECT 字段

FROM 表

(WHERE ……);

举例:

②多表的视图创建

视图的创建也可以选择多表中不同的内容,使用JOIN ON 对不同的表进行连接

③格式化数据

视图也可以通过对选择语句的整合修改(利用函数)创建新的字段,格式化数据

④基于视图,创建新视图

4、查看视图

查看,是视图的主要功能。

5、更新视图

UPDATE 视图名

SET ……

WHERE ……

不可更新的视图

①在定义视图的时候指定了“ALGORITHM = TEMPTABLE”,视图将不支持INSERT和DELETE操作;

②视图中不包含基表中所有被定义为非空又未指定默认值的列,视图将不支持INSERT操作;

③在定义视图的SELECT语句中使用了 JOIN联合查询 ,视图将不支持INSERT和DELETE操作;

④在定义视图的SELECT语句后的字段列表中使用了 数学表达式 或 子查询 ,视图将不支持INSERT,也不支持UPDATE使用了数学表达式、子查询的字段值;

⑤在定义视图的SELECT语句后的字段列表中使用 DISTINCT 、 聚合函数 、 GROUP BY 、 HAVING 、UNION 等,视图将不支持INSERT、UPDATE、DELETE;

 

6、删除视图

DROP VIEW IS EXSITS 视图名;

 

7、视图的优点

(1)操作简单

(2)减少数据的冗余

(3)数据安全

(4)适应灵活多变的需求

(5)能够分解复杂的查询逻辑

8、视图的不足

(1)如果数据表的变更了,我们需要及时对相关的视图进行相关的维护。维护成本高。


http://www.kler.cn/a/536637.html

相关文章:

  • 路由器如何进行数据包转发?
  • 快速对QWen2.5大模型进行微调
  • 网络工程师 (21)网络的性能
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter2-HTML 中的 JavaScript
  • 旋转变压器工作及解调原理
  • 【基于SprintBoot+Mybatis+Mysql】电脑商城项目之修改密码和个人资料
  • 力扣.623. 在二叉树中增加一行(链式结构的插入操作)
  • LeetCode--279. 完全平方数【动态规划】
  • 深度学习模型格式解析:PyTorch、AWQ 和 GPTQ
  • @RequestBody与@ResponseBody:Spring数据处理的“翻译官”
  • 基于PSO粒子群优化和Voronoi图的配电网电动汽车充电站最优选址matlab仿真
  • error: externally-managed-environment
  • 【网络安全学习笔记】传输层协议 UDP 与 TCP
  • 【物联网IoT - 10分钟,构建一个自己的MQTT Broker服务!】
  • 第17章 读写锁分离设计模式(Java高并发编程详解:多线程与系统设计)
  • 基于Flask的历史空难数据可视化分析系统的设计与实现
  • [ESP32:Vscode+PlatformIO]添加第三方库 开源库 与Arduino导入第三方库的区别
  • MWORKS 2025a | 模型降阶与融合仿真工具聚焦用户体验全面升级
  • stable diffusion安装包与常用模型下载
  • spy-debugger + Charles 调试移动端/内嵌小程序H5
  • CSS盒子模型详解
  • Three.js实现一个动态的 3D 点阵波浪效果
  • 保姆级教程 !SQL Server数据库的备份和还原
  • 语言模型测试系列【12】
  • web-RCE-CTFHub
  • 蓝桥杯Java之输入输出练习题