MySQL-----视图

一   视图

▶ 介绍

        视图view是一个虚拟表,非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用视图名称即可获取结果集,并可以将其当作表来使用。
        数据库中存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。
        使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。

▶ 作用

        简化代码,可以把重复使用的查询封装成视图重复使用,同时可以使复杂的查询易于理
和使用。
        安全原因,如果一张表中有很多数据,很多信息不希望让所有人看到,此时可以使用视图视,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,可以对不同的用户,设定不同的视图。

二   创建视图

语法:

create [or replace] [algorithm = {undefine | merge | temptable }]
 view 视图名 [(视图字段列表)]
 as 查询语句
 [with [cascad | local ] check option]

参数说明:
  algorithm:可选项,表示视图选择的算法
  [with [cascad | local ] check option]:可选项,表示更新视图时要保证在该视图的权限范围之内

数据准备

我们先创建三张表:

创建视图

        需要注意的是,如果原表的数据发生改变,那么视图里面显示的数据会随着原表的改变而改变。

三   修改视图

        修改视图是指修改数据库中已存在的表的定义。当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间一致。MySQL中通过CREATE OR REPLACE  VIEW语句和ALTER VIEW语句来修改视图。

▶ 格式

   alter view 视图名 as select语句

▶ 演示

-- 修改视图
alter view 视图名 as select语句

alter view view1_emp
as 
select a.deptno,a.dname,a.loc,b.ename,b.sai from dept a,emp b where a.deptno=b.deptno;


select * from view1_emp;

四   更新视图

        某些视图是可更新的。也就是说,可以在UPDATE、DELETE或INSERT等语句中使用它们,以更新基表的内容。对于可更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系。
如果视图包含下述结构中的任何一种,那么它就是不可更新的:
        聚合函数(SUM(),MIN(),MAX(),COUNT()等). 
        DISTINCT
        GROUP BY
        HAVING
        UNION或UNION ALL
        位于选择列表中的子查询
        JOIN
        FROM子句中的不可更新视图
        WHERE子句中的子查询,引用FROM子句中的表。
        仅引用文字值(在该情况下,没有要更新的基本表)

        视图中虽然可以更新数据,但是有很多的限制。一般情况下,最好将视图作为查询数据的虚拟表,而不要通过视图更新数据。因为,使用视图更新数据时,如果没有全面考虑在视图中更新数据的限制,就可能会造成数据更新失败。

执行更新过程:

create or replace view view1_emp
as 
select ename,job from emp;

select * from view1_emp;

update view1_emp set ename = '周瑜' where  ename = '张飞';

更新视图前的表

更新视图后的表

        这说明更新视图的数据,实际上就是对原表的数据进行更新。

五   重命名视图和删除视图

 ▶ 重命名视图

rename table 视图名 to 新视图名;

 ▶ 删除视图

drop view if exists 视图名[,视图名...];

删除视图时,只能删除视图的定义,不会删除数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/427607.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows环境下Grafana+loki+promtail入门级部署日志系统,收集Springboot(Slf4j+logback)项目日志

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…

HarmonyOS—开启AOT编译模式

AOT(Ahead Of Time)即提前编译,能够在Host端(即运行DevEco Studio的电脑)将字节码提前编译成Target端(即运行应用的设备)可运行的机器码,这样字节码可以获得充分编译优化&#xff0c…

OpenMMlab AI实战营第三期培训

OpenMMlab AI实战营第三期培训 OpenMMlab实战营第三次课2023.2.2学习参考一、pytorch完整训练过程二、基于mmclassification做图像分类1.安装mim工具包以及必备的库2. OpenMMlab项目中的重要概念(1)配置文件(2)下载配置文件 3.训练…

Frontend - Boostrap 消息弹窗

目录 一、下载 (一)中文官网 (二)bootstrap v3 依赖 jQuery 插件 二、解压并安装 (一)解压 1. 压缩包解压 2. 简化文件 (二)安装 三、配置 (一)bas…

CDN介绍

概念介绍 CDN Content Delivery Network,缩写:CDN)是一种提供更快互联网访问的服务,通过在网络的边缘或核心交换区域部署内容代理服务器来实现。这些服务器利用全局负载调度机制来分发内容,从而构建了一个覆盖范围广…

2023年个税申报:“婴幼儿照护专项附加扣除标准”你选对了没有?

2023年个税申报:“婴幼儿照护专项附加扣除标准”你选对了没有? 根据《国务院关于设立3岁以下婴幼儿照护个人所得税专项附加扣除的通知》(国发〔2022〕8号): 一、纳税人照护3岁以下婴幼儿子女的相关支出,按照每个婴幼儿每月1000元…

技术总结: PPT绘图

目录 写在前面参考文档技巧总结PPT中元素的连接立方体调整厚度调整图形中的文本3D 图片调整渐变中的颜色 写在前面 能绘制好一个好看的示意图非常重要, 在科研和工作中好的示意图能精准表达出自己的想法, 减少沟通的成本, 可视化的呈现也可以加强自身对系统的理解, 时间很久后…

Linux进程间通信方式之socket使用实例

TCP/IP协议族包括运输层、网络层、链路层,而socket所在位置如图,Socket是应用层与TCP/IP协议族通信的中间软件抽象层。 下面是网络socket通信的基本流程: socket函数 int socket(int domain, int type, int protocol);socket函数对应于普通…

DevOps学习 | 如何应对IT服务交付中的问题?

目录 前言 DevOps是什么? DevOps发展历程 DevOps与微服务、容器的关系 书本推荐 前言 作为一个热门的概念,DevOps这个名词在程序员社区里频频出现,备受技术大佬们的追捧。甚至网络上有了“南无DevOps”的戏言(南无在梵语的意…

MySQL面试题【全面】

基础内容 1、MySQL的架构分层 (1)Serve层:负责建立连接、分析和执行 SQL。 MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。另外,所有的内置函数&…

解析 openGauss 的 AutoVacuum 机制及优化策略

前言 在 openGauss 数据库中,AutoVacuum 机制是一个关键的自动化功能,用于管理表的空间和性能。AutoVacuum 通过定期清理过时数据和更新统计信息,帮助数据库管理员维护数据库的性能和稳定性。 为什么需要 AutoVacuum? 了解AutoV…

SOCKS55代理 VS Http代理,如何选择?

在使用IPFoxy全球代理时,选择 SOCKS55代理还是HTTP代理?IPFoxy代理可以SOCKS55、Http协议自主切换,但要怎么选择?为解决这个问题,得充分了解两种代理的工作原理和配置情况。 在这篇文章中,我们会简要介绍 …

第15届蓝桥STEMA测评真题剖析-2024年1月28日Scratch编程初中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第173讲。 第15届蓝桥第4次STEMA测评,这是2024年1月28日举办的STEMA,比赛仍然采取线上形式。这…

羊大师揭秘羊奶与健康,美味的保健佳品

羊大师揭秘羊奶与健康,美味的保健佳品 羊奶确实是一种美味且健康的保健佳品,其独特的营养成分和风味使其成为许多人的健康选择。以下是一些羊奶与健康的关系: 营养丰富:羊奶含有丰富的蛋白质、脂肪、矿物质和维生素,…

【latex过长或过短】 表格大小调整 解决方案

文章目录 1、表格过短 1.2 问题描述1.2 解决方案 2、表格过长,显示信息不全 2.1 问题描述2.2 解决方案 1、表格过短 1.2 问题描述 表格占整个页面的宽度较小,如下图: Latex源码如下:\begin{table*} \caption{short} \label{t1} …

OpenCompass 大模型评测介绍和实战

为什么要进行评测? 大模型的能力 模型评测对各个人的影响 如何评测大语言模型 客观评测 主观评测 prompt工程 平台结构 流水线设计 大模型评测对比 多模态探索 垂直领域(法律) 垂直领域(医疗) 大模型评测领…

Python 语句(二)【循环语句】

循环语句允许执行一个语句或语句组多次,其程序流程图如下: 在python中有三种循环方式: while 循环 当判断条件为 true 时执行循环体,否则退出循环体。for 循环 重复执行语句嵌套循环 (在while循环体中嵌套for循环&…

Java 打包 SpringBoot 项目报错

Java 打包 SpringBoot 项目报错 问题重现 Please refer to xxxx for the individual test results. Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream. 解决问题 在 pom.xml 的 <properties> 中添加项目代码 <s…

Python处理表格数据库之Agate使用详解

概要 您是否有时觉得在处理表格数据时感到不知所措? 也许你在处理一个大型 CSV 文件,遇到了各种数据不一致的问题,或者需要验证数据,确保其准确无误才能进行下一步分析。 传统的数据分析库或许功能强大,但学习曲线陡峭,用起来有点杀鸡用牛刀的感觉。 这时,有一个更…

2024六大创业营销趋势,普通人创业新风向!

2024年越来越多的人选择创业&#xff0c;从龙年春节前后&#xff0c;创投圈就开始探讨关于2024的创业新风向&#xff0c;从各个热点&#xff0c;各大品牌&#xff0c;春晚等等方面洞察2024创业趋势&#xff0c;以下总结的6大创业营销趋势&#xff0c;跟着大品牌押宝&#xff0c…