MySQL中视图是什么,有什么作用

news2024/12/29 11:02:27

目录

一、视图的简介

1.1 什么是视图?

1.2 为什么使用视图?

1.3 视图有哪些规则与限制?

1.4 视图能否更新?

二、视图的创建

三、视图的作用

3.1 用视图简化复杂的联结

3.2 用视图格式化检索出的数据

3.3 用视图过滤数据


一、视图的简介

*本节涉及概念来源于图灵程序设计丛书,数据库系列——《MySQL必知必会》

1.1 什么是视图?

视图为虚拟的表,并不包含数据。视图只包含使用时动态检索数据的查询,返回的数据是从其他表中检索出来的。

在视图创建之后,可以用与表基本相同的方式使用它。可以对视图执行查询、过滤和排序等操作,也可以进行联结到其他视图或表

1.2 为什么使用视图?

视图提供了一种查询语句层次的封装,可以用来简化数据处理、格式化基础数据或保护基础数据。视图的常见应用有:

重用SQL语句,简化复杂的SQL操作。

更改数据格式和表示。

过滤不需要的数据。

保护数据,可以给用户授予表的特定部分的访问权限,而不是整个表的访问权限。

1.3 视图有哪些规则与限制?

①视图必须唯一命名,不可与别的视图或表重名。

②可创建的视图数目没有限制,视图可嵌套,即从其他视图中检索数据的查询来构造一个视图。

③视图的中可以使用ORDER BY ,但如果使用该视图的查询语句中也含有ORDER BY,则视图中的会被覆盖;如果同时使用的是WHERE子句,则会两组子句自动组合。

④视图不能索引,也不能有关联的触发器或默认值。

⑤创建视图必须有足够的访问权限。

1.4 视图能否更新?

视图本身不包含数据,返回的数据是从其他表中检索出来的,当更改这些表中的数据时,视图将返回更改后的数据。(视图不包含数据,每次使用视图时都会处理查询执行时所需的任一个检索)

视图是可更新的,但上述有提到视图中的数据来源于其他表,那么对视图进行更新,实际上是对其基表进行更新。

视图更新有很多限制,视图的主要作用是用于数据检索,而不是更新数据。


二、视图的创建

①创建 CREATE VIEW name AS ...

②查看 SHOW CREATE VIEW name

③删除 DROP VIEW name

④更新 可以先用DROP再用CREATE;或者直接用CREATE OR REPLACE VIEW,如果要更新的视图不存在则会创建一个视图,否则会替换原视图。


三、视图的作用

3.1 用视图简化复杂的联结

 以表格customers与orders为例。

视图可以简化SQL语句的使用,利用视图可以一次性编写基础的SQL,然后根据需要多次使用。

myview视图中返回将c表与o表联结起来并进行对应查询所得用户姓名、id以及订单号。

如要检索订单号为20009的客户的名字以及id,可以直接从myview视图中进行检索。在处理此查询时会将WHERE子句与视图中原有的WHERE子句结合起来正确检索数据。

3.2 用视图格式化检索出的数据

以表格vendors为例。

如果想要输出 vend_name(vend_country) 的格式,并经常使用该格式,可以创建一个视图。

3.3 用视图过滤数据

在customers表格中,有些用户没有email信息,如果要过滤掉cust_email为null的行,可以创建一个视图,后续可以直接使用该视图进行其他检索。

 

*只要不主动删除,视图是一直存在于对应的数据库中的。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字人系统OEM源码及赚钱方式详解!

当前,数字人直播的热度持续上涨,应用场景日益丰富。而随着数字人直播所蕴含的前景和潜力被不断挖掘一批又一批的创业者纷纷开始入局分羹。其中,数字人系统OEM源码模式作为最为常见的入局方式之一,更是备受瞩目。 所谓数字人系统O…

机器人开源项目分享,助力一户一机器人

最初,因隋炀帝思念心切,命工匠按照柳抃的形象制作了木偶机器人,被认为是历史上最早的机器人之一。这些木偶机器人通过精巧设计的机关,能够执行坐、起、拜、伏等动作。 如今,随着科技的发展,机器人已经广泛…

2024年安全生产月资料合集,抓紧保存!

今年6月,我们将迎来第23个全国“安全生产月”,主题定为“人人讲安全、个个会应急———畅通生命通道”。 为了方便大家组织“安全生产月”活动,做好安全月宣传和培训。我们特别邀请了 安全工程师 王欣和李勇刚,结合今年的活动要求…

pip(包管理器) for Python

pip是什么 pip是Python的包安装程序,即python包管理器。您可以使用 pip 从Python包索引和其他索引安装包。 1. pip 安装 python 包 pip install 包名 例如:pip install pymssql : 使用pip安装数据库驱动包 pymssql 2.pip 卸载 python 包 pi…

LSPatch免root手机模块应用

软件介绍 LSPatch是一款免root手机模块应用,兼容大部分机型,使用LSPatch,您可以个性化您的Android设备,添加新的功能,修改系统设置,甚至完全改变系统的外观。您可以根据自己的需求选择和安装各种Xposed模块…

神经网络优化算法

神经网络优化算法 文章目录 神经网络优化算法梯度下降算法批量梯度下降法随机梯度下降法小批量随机梯度下降法动量法NAGAdaGradRMSPropADADELTAADAMNADAM 梯度下降算法 以 f ( x ) 1 2 x 2 f(x)\frac12x^2 f(x)21​x2为例展示了梯度下降法中梯度下降的实际情况,图…

Postman快捷功能-快速填写请求头

大家好,之前给大家分享关于 Postman 工具的基础使用,今天给大家介绍一个快捷功能,可以一定程度提高我们使用 Postman 工具的效率,在我们进行接口测试时,几乎每个接口都需要填写 Headers,且 Headers 中的参数…

代理模式的种类和它们之间区别?

静态代理 这种代理方式需要代理对象和目标对象实现一样的接口。 优点:可以在不修改目标对象的前提下扩展目标对象的功能。 缺点: 1.冗余。由于代理对象要实现与目标对象一致的接口,会产生过多的代理类。 2. 不易维护。一旦接口增加方法,目标…

桂林电子科技大学计算机工程学院、广西北部湾大学计信学院莅临泰迪智能科技参观交流

5月18日,桂林电子科技大学计算机工程学院副院长刘利民、副书记杨美娜、毕业班辅导员黄秀娟、广西北部湾大学计信学院院长助理刘秀平莅临广东泰迪智能科技股份有限公司产教融合实训基地参观交流。泰迪智能科技副总经理施兴、广西分公司郑廷和、梁霜、培训业务部孙学镂…

Mysql8.0离线安装 centos

Mysql8.0离线安装 centos 上传mysql安装包并解压 tar xvf mysql-8.0.37-1.el7.x86_64.rpm-bundle.tar运行安装对应的rpm包,按照一下顺序 rpm -ivh mysql-community-common-8.0.37-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.37-1.el7.x86_64.rp…

班组管理新篇章:打造高效沟通机制,助推团队协同发展

班组作为组织的基本单位,其沟通的顺畅与否直接关系到整个组织的运行效率和团队的凝聚力。建立健全的班组管理沟通机制,不仅是提升工作效率的关键,更是推动团队持续发展的核心动力。那么,如何建立健全的班组管理沟通机制呢&#xf…

LeetCode题练习与总结:从前序与中序遍历序列构造二叉树--105

一、题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,nul…

一图看懂 | 蓝卓医化行业解决方案

随着“创新药”首次出现在政府工作报告中,医药工业各个细分赛道都迎来了关键突破期,其中化学药品制剂作为所有药品中数量、品种最多的类别,也是居民日常生活中使用最广泛的类别,推动医药化工行业数字化能力,对于发展新…

解决docker中container运行闪退终止的问题

在运行bindmount-test时,点击完运行按钮后闪退结束运行。 第一步查看log日志: 2024-05-18 23:46:18 Error: Cannot find module /app/nodemon 2024-05-18 23:46:18 at Function.Module._resolveFilename (internal/modules/cjs/loader.js:668:15) …

pip如何快速install packet

1、在后面加-i https://mirrors.aliyun.com//pypi//simple或https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy -i https://mirrors.aliyun.com//pypi//simplepip install numpy1.21.0 -i https://pypi.tuna.tsinghua.edu.cn/simple2、需要注意的是,如果…

k8s 声明式资源管理

一、资源配置清单的管理 1.1 查看资源配置清单 声明式管理方法: 1.适合于对资源的修改操作 2.声明式资源管理方法依赖于资源配置清单文件对资源进行管理 资源配置清单文件有两种格式:yaml(人性化,易读),j…

实例展示vue单元测试及难题解惑

通过生动详实的例子带你排遍vue单元测试过程中的所有疑惑与难题。 技术栈:jest、vue-test-utils。 共四个部分:运行时、Mock、Stub、Configuring和CLI。 运行时 在跑测试用例时,大家的第一个绊脚石肯定是各种undifned报错。 解决这些报错…

精品干货-阿里巴巴华为等知名大厂数据中台最佳实践方案合集(52份可下载)

【1】关注本公众号 【1】私信发送 数据中台52 获取下载链接。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方案!!!感谢支持!!!

[STM32-HAL库]0.96寸OLED显示屏-模拟IIC-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C8T6

目录 一、前言 二、详细步骤 1.配置STM32CUBEMX 2.导入OLED库 3.程序设计 3.1 初始化OLED显示屏 3.2 显示字符串 3.3 显示汉字 三、汉字取模 四、总结 一、前言 OLED显示屏是一种十分常见的显示模块,通过用它作为采集到的传感器数据的展示模块。本文通过STM32CU…

每日一题——Python实现PAT甲级1028 List Sorting(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 ​编辑​编辑​编辑我的写法: 代码点评 代码点评: 时间复杂…