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

常见数据库对象与视图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.lryc.cn/news/533429.html

相关文章:

  • 【Vue2】vue2项目中如何使用mavon-editor编辑器,数据如何回显到网页,如何回显到编辑器二次编辑
  • 2、Python面试题解析:如何进行字符串插值?
  • 计算机网络-SSH基本原理
  • doris:MySQL 兼容性
  • mysql 存储过程和自定义函数 详解
  • C++ 中的 cJSON 解析库:用法、实现及递归解析算法与内存高效管理
  • websocket自动重连封装
  • 【C语言】球球大作战游戏
  • 人工智能D* Lite 算法-动态障碍物处理、多步预测和启发式函数优化
  • MySQL 8版本认证问题
  • Android 开发APP中参数配置与读取总结
  • Scala 语法入门
  • python中的flask框架
  • 【redis】缓存设计规范
  • 归一化与伪彩:LabVIEW图像处理的区别
  • DeepSeek大模型本地部署实战
  • deepseek+kimi自动生成ppt
  • 集成SwanLab与HuggingFace TRL:跟踪与优化强化学习实验
  • cefsharp131升级132测试(WinForms.NETCore)
  • Gitee AI上线:开启免费DeepSeek模型新时代
  • nginx常用命令及补充
  • 自动驾驶---聊聊传统规控和端到端
  • node.js + html + Sealos容器云 搭建简易多人实时聊天室demo 带源码
  • OpenFeign远程调用返回的是List<T>类型的数据
  • PCL 计算多边形的面积【2025最新版】
  • 著名大模型评测榜单(不同评测方式)
  • 国内知名Deepseek培训师培训讲师唐兴通老师讲授AI人工智能大模型实践应用
  • 【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用
  • 如何打造一个更友好的网站结构?
  • 【ROS2】RViz2自定义面板插件(rviz_common::Panel)的详细步骤