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

目录

一、视图的简介

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.mzph.cn/web/16590.shtml

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

相关文章

梭住绿色,植梦WILL来,容声冰箱“节能森林计划”再启航

近日,容声冰箱再度开启了“节能森林计划”绿色公益之旅。 据「TMT星球」了解,此次活动深入到阿拉善荒漠化地带,通过实地考察和亲身体验,见证容声了“节能森林计划”项目的持续落地和实施效果。 2022年,容声冰箱启动了…

【电控实物-PMSM】

遗留问题 电流环闭环 电流环频率会受到编码器回传频率影响? Ld&Lq辨识 L观测器设计验证 滑膜观测器/高频注入 前馈(加大负载) 各种电流控制模式: psms规格书 参数辨识 Ld&Lq

代码随想录训练营Day 40|力扣509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

1.斐波那契数 代码随想录 视频&#xff1a;手把手带你入门动态规划 | LeetCode&#xff1a;509.斐波那契数_哔哩哔哩_bilibili 代码&#xff1a; class Solution { public:int fib(int n) {if(n < 1) return n;vector<int> dp(n 1);dp[0] 0;dp[1] 1;for(int i 2;…

qt 布局学习笔记

目录 qt下载地址&#xff1a; widget 宽高 管理信息列表源码 c版&#xff1a; pro文件&#xff1a; qt 设置水平布局&#xff0c;里面有两个按钮&#xff0c;每个按钮就变的很宽&#xff0c;怎么设置按钮的精确位置 设置固定大小&#xff1a; 使用弹性空间&#xff08;…

高效掌控速卖通自养号测评:成本、步骤、技巧全方位掌握

在跨境电商的汹涌浪潮中&#xff0c;速卖通犹如一颗璀璨的领航星&#xff0c;引领着无数寻求海外拓展的企业和商家驶向国际市场的广阔海域。从最初的C2C模式起步&#xff0c;速卖通历经蜕变&#xff0c;如今已华丽转身成为B2C跨境电商领域的翘楚&#xff0c;承载着无数中国卖家…

【传知代码】基于图神经网络的知识追踪方法(论文复现)

前言&#xff1a;本文将深入探讨基于图神经网络的知识追踪方法&#xff0c;旨在通过构建知识图谱来捕捉知识之间的复杂关联&#xff0c;并利用图神经网络强大的表示学习能力来建模学生的学习过程。我们将首先介绍图神经网络的基本原理和关键技术&#xff0c;然后详细阐述如何将…

Sylvester矩阵、子结式、辗转相除法的三者关系(第二部分)

【三者的关系】 首先&#xff0c;辗转相除法可以通过Sylvester矩阵进行&#xff0c;过程如下&#xff08;以 m 8 、 l 7 m 8、l 7 m8、l7为例子&#xff09;。 首先调整矩阵中 a a a系数到最后面几行&#xff0c;如下所示&#xff1a; S ( a 8 a 7 a 6 a 5 a 4 a 3 a 2 …

使用logstash同步mysql 到es

下载安装Logstash 然后编写Logstash配置文件logstash.conf,注意mysql表一定要有主键&#xff0c;而且有更新时间字段 例如&#xff1a; input {jdbc {# 设置 MySql/MariaDB 数据库url以及数据库名称jdbc_connection_string > "jdbc:mysql://127.0.0.1:3306/mydb?useU…

现代前端工程化实践:Git、Husky、Commitlint与PNPM的协同作战

引言 Git Husky 与 Commitlint 是两个在 Git 工作流程中非常实用的工具&#xff0c;它们可以帮助团队维护代码质量和提交规范。Husky 是一个 Git 钩子管理器&#xff0c;允许你在仓库级别方便地配置钩子脚本&#xff1b;而 Commitlint 则是用来规范 Git 提交信息的工具&#x…

edge浏览器的网页复制

一些网页往往禁止复制粘贴&#xff0c;本文方法如下&#xff1a; 网址最前面加上 read: &#xff08;此方法适用于Microsoft Edge 浏览器&#xff09;在此网站网址前加上read:进入阅读器模式即可

【前端】web移动端进行监控是否完播 | 视频完播率设计

1、整体设计 1、前端播放监控&#xff1a; 使用移动端的前端播放器&#xff0c;比如 HTML5 video 标签或者第三方播放器&#xff08;如 Video.js 或者 H5Player&#xff09;。 在播放器中添加事件监听器来监控播放状态&#xff0c;例如 timeupdate、ended 等事件。 2、记录播…

跨境电商投放Facebook广告推广攻略!

在出海浪潮中&#xff0c;跨境电商已经成为企业连接不同市场、拓展国际业务的重要途径。Facebook&#xff0c;作为全球最大的社交平台之一&#xff0c;拥有超过20亿的活跃用户&#xff0c;为跨境卖家提供了一个无与伦比的营销舞台。有效利用Facebook广告&#xff0c;不仅能帮助…

MySQL导入SQL脚本---超详细介绍

1.新建xxx数据库&#xff0c;字符集选对。 2.在mysql安装目录下cmd进入小黑窗 3.执行mysql -uroot -p123456 --default-character-setutf8命令 4.use xxx; 5.source xxx.sql 执行完上面的命令等待结束就可以了 需要注意的是--default-character-setutf8&#xff0c;要不然可…

如何选择一款开放式耳机?六大独家选购技巧超详细汇总!

​喜欢户外活动的朋友们&#xff0c;你们都是懂得享受生活的达人吧&#xff01;想象一下&#xff0c;在户外活动时&#xff0c;如果能有一副既适合场景又提供超棒音乐体验的耳机&#xff0c;那该多完美啊&#xff01;这时候&#xff0c;开放式耳机就闪亮登场了&#xff01;它的…

Android 多语言

0. Locale方法 Locale locale Locale.forLanguageTag("zh-Hans-CN"); 执行如下方法返回字符串如下&#xff1a; 方法 英文下执行 中文下执行 备注 getLanguage()zhzhgetCountry()CNCNgetDisplayLanguage()zh中文getDisplayCountry()CN中国getDisplayName()zh (…

微前端框架 之 定义全局状态管理库(五)

假设你正在使用基于单页面应用&#xff08;SPA&#xff09;的微前端框架。以下简化一个应用之间共享状态的例子。 1. 使用发布/订阅模式 // globalStateManager.js class GlobalStateManager { constructor() { this.subscribers {}; this.state {}; } subscribe(key…

XGBoost算法详解:机器学习分类中的强力工具

课程链接&#xff1a;AI小天才&#xff1a;让你轻松掌握机器学习 引言&#xff1a; XGBoost&#xff08;Extreme Gradient Boosting&#xff09;是一种高效的机器学习算法&#xff0c;被广泛应用于分类、回归、排序等任务中。其优秀的性能和灵活性使得它成为了数据科学领域的瑰…

RocketMQ实战教程之常见概念和模型

RocketMQ实战教程之常见概念和模型 常见概念与模型 官方文档: https://rocketmq.apache.org/zh/docs/introduction/02concepts 1 常见概念[重点] 消息&#xff08;Message) 消息是 Apache RocketMQ 中的最小数据传输单元。生产者将业务数据的负载和拓展属性包装成消息发送…

JavaWeb-JS

目录 学习重点 什么是 JavaScript? Web标准 JS的引入方式 JS的基本语法 JS的函数 JS的对象 JS事件监听 学习重点 js 引入方式 js 基础语法 js 函数 js 对象 js 事件监听 什么是 JavaScript? Web标准 Web 标准也称为网页标准 &#xff0c;由一系列的标准组成&#xff0…

七年之痒!一个 PHP 程序员职业生涯的自述

大家好&#xff0c;我是码农先森。 今年刚好是我毕业的第七个年头&#xff0c;在婚姻感情当中都有一种「七年之痒」的说法&#xff0c;这次我把这个词「七年之痒」用一次在我的职业生涯复盘上。七年前我从告别校园&#xff0c;踏入互联网编程行业&#xff0c;七年后我依旧在编…