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.rhkb.cn/news/268983.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

格两例12345

osu/Lucky Roll gaming 周末osu有道题:lcg已知低位 def lcg(s, a, b, p):return (a * s b) % pp getPrime(floor(72.7)) a randrange(0, p) b randrange(0, p) seed randrange(0, p) print(f"{p }") print(f"{a }") print(f"{b …

SketchUp Pro 2023:颠覆传统,重塑设计世界mac/win版

SketchUp Pro 2023是一款强大的三维建模软件,专为设计师、建筑师和创意专业人士打造。这款软件以其直观易用的界面和强大的功能而著称,为用户提供了无限的创意空间。 SketchUp Pro 2023 软件获取 SketchUp Pro 2023在用户体验方面进行了全面的优化&…

20240304-2-计算机网络

计算机网络 知识体系 Questions 1.计算机网络分层的优点和缺点 优点 各层之间是独立的;灵活性好;结构上可分割开;易于实现和维护;能促进标准化工作。 缺点: 降低效率;有些功能会在不同的层次中重复出现&…

如何对比 MySQL 主备数据的一致性?

随着业务范围的扩大,很多企业为了保障核心业务的高可用性,选择了 MySQL 主从架构,这一套方案通常具备主备数据同步、数据备份与恢复、读写分离、高可用切换等特性,是一种相当成熟可靠的数据库架构方案。然而这套方案在特定情况下可…

安装 docker 可视化工具 portainer

portainer 官方网站 https://www.portainer.io/ 一、portainer 介绍 Portainer是一款开源的容器管理平台,它提供了一个直观易用的Web界面,帮助用户管理Docker容器集群、镜像、卷等资源。Portainer 支持多种 Docker 环境,包括本地Docker、Sw…

数学建模【多元线性回归模型】

一、多元线性回归模型简介 回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的任务就是,通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进…

【Boost搜索引擎项目】Day1 项目介绍+去标签和数据清洗框架搭建

🌈欢迎来到C项目专栏 🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生 🌏IP坐标:湖北武汉 🍉 目前技术栈:C/C、Linux系统编程、计算机网络、数据结构、Mysq…

毕业论文页眉页脚的设置

目录 一、理解:分页符和分节符的区别 二、页眉设置具体步骤 三、页脚设置具体步骤 一、理解:分页符和分节符的区别 分页符是重新一页开始而已,和页码无关! 分节符是从这里开始,是新的小节,页码和页眉都…

前后端依赖下载上传

在某些情况下,可能需要在没有互联网连接的环境中进行构建或部署。通过提前下载所有依赖,你可以将它们保存在本地,然后在没有网络连接时使用,提高构建或部署的效率。 前端下载依赖 脚本getTzgUrl.js const { readFileSync, writ…

【前端寻宝之路】总结学习使用CSS的引入方式

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-BNJBIEvpN0GHNeJ1 {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

死记硬背spring bean 的生命周期

1.bean的生命周期 我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容…

上帝视角看GPU(5):图形流水线里的不可编程单元

【GPU】图形流水线基础【GPU】逻辑上的模块划分【GPU】部署到硬件【GPU】完整的软件栈 前几期我们过了一遍GPU的软硬栈。这次我们将深入GPU图形流水线的一些细节,看看那些不可编程的模块是怎么工作的。 对于GPU的图形流水线来说,最核心最重要的一个组件就…

leetcode第 387 场周赛总结

很久没打周赛了,这周开始恢复 这次周赛,题目比较简单,第三道题有点浪费了时间,思路是对的,但是被我把问题复杂化了。 给你一个下标从 1 开始、包含 不同 整数的数组 nums ,数组长度为 n 。 你需要通过 n 次…

【QT 5 +Linux下软件qt软件打包+qt生成软件创建可以安装压缩包+学习他人文章+第三篇:学习打包】

【QT 5 Linux下软件qt软件打包qt生成软件创建可以安装压缩包学习他人文章第三篇:学习打包】 1、前言2、实验环境3、自我学习总结-本篇总结(1)了解安装包的目录结构(2)了解要编写文件与编写脚本1. control文件2. postin…

美女街拍3000张高清图

美女街拍3000张高清图,需要的可以直接下载 2.资源下载 ​途径一:点击以下链接直接下载 美女街拍3000张高清图 途径二:直接长按住以下图片识别进去下载即可

北京大学发布,将试错引入大模型代理学习!

引言:探索语言智能的新边界 在人工智能的发展历程中,语言智能始终是一个核心的研究领域。随着大语言模型(LLM)的兴起,我们对语言智能的理解和应用已经迈入了一个新的阶段。这些模型不仅能够理解和生成自然语言&#x…

UCSF DOCK 分子对接详细案例(01)- rigid, fixed anchor, flexible dock

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、操作环境二、研究背景三、受体-配体结构文件准备3.1准备文件夹DOCK_workdir, 下载晶体结构3.1.1 来自湿实验的受体配体共晶结构:3.1.2 来自深度学习和语言模型推理预测的蛋白结构&a…

了解游戏中的数据同步

目录 数据同步 通过比较来看状态同步和帧同步 状态同步 帧同步 帧同步实现需要的条件 两者相比较 数据同步 在联机游戏中,我的操作和数据要同步给同一局游戏中其他所有玩家,其他玩家的操作和数据也会同步给我。这叫做数据同步,目前数据…

幻兽帕鲁(1.5.0)可视化管理工具(0.5.7 docker版)安装教程

文章目录 局域网帕鲁服务器部署教程帕鲁服务可视化工具安装配置服务器地址(可跳过)使用工具管理面板 1.5.0服务端RCON错误1.5.0服务端无法启动RCON端口 解决方法第一步:PalWorldSettings.ini配置第二步:修改PalServer.sh配置 局域…

Unity(第二十一部)动画的基础了解(感觉不了解其实也行)

1、动画组件老的是Animations 动画视频Play Automatically 是否自动播放Animate Physics 驱动方式,勾选后是物理驱动Culling Type 剔除方式 默认总是动画化就会一直执行下去,第二个是基于渲染播放(离开镜头后不执行), …