Mysql视图用法

MySQL视图的7种高级用法:从单表聚合到多表联查实战 本文深入探讨MySQL视图的7种高级用法,从单表聚合到多表联查实战,涵盖数据安全控制、复杂查询简化、多表联查视图等核心场景。通过具体代码示例展示如何利用视图提升数据库开发效率,优化查询性能,并实现业务数据的层级抽象与动态处理。特别适合DBA和全栈开发者提升MySQL应用能力。 阅读详情


视图:view


如果某个查询结果出现的非常频繁,也就是,靠这个结果当做进行子查询出现的非常频繁。


类似于下面这两句的思路,我们想把结果保存到表里,供下次查询用。

create table g2 like goods;

insert into g2 select ....


视图的定义:视图是由查询结果形成的一张虚拟表。


视图的创建关键在于select语句上。


(1)视图的创建语法:

create view 视图名 as select语句;


(2)视图的删除语法:

drop view 视图名;


为什么要视图?

1.可以简化查询,

比如我们已经创建了一个名为lmj的视图,那么可以在它的上边直接进行查询:

select * from lmj order by pj desc limit 3;


2.可以进行权限控制

想要不把某些表的列的权限给用户看,可以通过创建视图屏蔽某些列。

create view clonegoods as select goods_id,cat_id,goods_name from goods;     

这一句创建的视图只给客户看goods_id,cat_id,goods_name


3.大数据分表时可以用到

比如:表的行数超过200万行时,就会变慢。

可以把一张表的数据拆成4张表来存放。

news表

newsid 1,2,3,4

分成:news1,news2,news3, news4表


把一张表的数据分散到四张表里,分散的方法很多,最常用可以用id取模来计算。

id%4+1 = [1, 2, 3, 4]


比如:$_GET['id'] = 17,17%4+1=2, $tablename = 'news2'

所以 select * from news2 where id = 17;                #我们在表2里面查找17就行了。


也可以用视图,把4张表形成一个视图:

create view news as select news1 union select from news2 union ....


(3)视图的修改

alter view as select语句;
这种做法相当于新建了一个视图把原来的代替掉了。


视图与表的关系:
视图是表的查询结果,表的数据改变了视图自然会改变。
但是视图的改变有可能改变表的结果,有可能不会。
比如视图呈现的结果是表的平均值,更改了视图中此值,根本无法在表中的到可行的对应修改方案,所以表的数据不会修改。并且这类不能修改的视图在update时会报错。


什么情况修改视图并且可以影响表呢?
视图的数据与表的数据一一对应时,可以修改。
对于视图必须insert还应注意,视图必须包含表中没有默认值的列。


视图的algorithm = merge, temptable,undefined

merger:当引用视图的时,引用视图的语句和定义视图的语句合并
temptable: 当引用视图时,根据视图的创建语句建立一个临时表
undefined:未定义,让系统选择algorithm


merge意味着视图只是一个语句规则,当查询视图时,把查询视图的语句(比如where)与创建时的where子句等合并分析,形成一条select语句。
不过要注意,如果用的是group如:
创建视图语句为:create view g2 as select goods_id,cat_id,goods_name,shop_price from goods order by cat_id shop_price desc;
查询视图语句为:  select * from g2 group by cat_id;
merger后的语句为:create view g2 as select goods_id,cat_id,goods_name,shop_price from goods  group by cat_id order by cat_id shop_price desc;可能的不到想要的结果。
所以merge仅仅体现语句叠加的效果。


而temptable是根据创建语句瞬间创建一张临时表,然后查询视图的语句从该临时表查询数据。







GPT Researcher 的win docker安装攻略 github网址是:https://github.com/assafelovic/gpt-researcher/blob/master/README-zh_CN.md。使用 Docker 运行 AI-Researcher 项目的。因为docker安装方法不够清晰,因此写一个使用方法。打开设置——docker engine ,增加代码。如有其他问题,可提供错误截图或日志进一步排查! 阅读详情

相关推荐

窥秘Windows 10:SAM密码破解

Windows 10作为广受欢迎的操作系统,拥有一套强大的安全措施来保护用户账号和数据安全。然而,有时候我们需要了解更多关于密码破解的知识,以加强我们的防护措施。本文将深入探讨如何突破Windows 10的SAM密码,以便更好地了解密码安全性并加强系统的保护。

Sgirll的博客 6845

MySQL中表视图使用操作详解

【1】视图的定义视图:view,是一种有结构(有行有列)但是没结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源) 创建视图后会自动从基表里面拉取数据到视图里面显示; 视图是一张虚拟的表; 视图一旦创建,系统会在视图对应的数据库文件夹下创建一个对应的结构文件–*.frm; 使用视图主要是为了查询数据; 【2】视图创建基本语法:create vi

小小默:进无止境 3166

MATLAB App Designer 实现多窗口交互与数据传递实战

本文详细介绍了如何使用MATLAB App Designer实现多窗口交互与数据传递的实战技巧。从基础的多窗口应用设计到高级的动态窗口创建,涵盖了窗口调用控制、数据传递方法、状态管理及用户体验优化等核心内容,帮助开发者高效构建复杂的MATLAB GUI应用。

milk5的博客 667

MySQL视图(详细)

视图是在数据库中定义的虚拟表。它是一个基于一个或多个实际表的查询结果集,可以像实际表一样被查询和操作。视图可以看作是一个动态生成的数据表,其内容是从其他表中选择、过滤和计算得到的。视图通过使用SQL查询语句来定义,这些查询语句可以包括与一个或多个表的连接、条件过滤、列计算、聚合函数等操作。在视图定义中,我们可以指定要在视图中包含的列和行,以及对这些列进行何种计算和处理。

2301_78341899的博客 1万+

Python自动化生成HyperMesh Tcl命令流:从几何建模到有限元分析

本文详细介绍了如何利用Python自动化生成HyperMesh的Tcl命令流,实现从几何建模到有限元分析的全流程二次开发。通过封装常用操作函数,工程师可以高效完成参数化建模、自动网格划分及求解器文件输出,显著提升CAE前处理效率与标准化水平。

weixin_29041767的博客 424

【移动APP测试】Firebase Test Lab (FTL) 实战指南:从零搭建自动化测试流水线

本文详细介绍了Firebase Test Lab (FTL) 在移动APP测试中的实战应用,从零搭建自动化测试流水线。通过真实设备、虚拟设备和iOS设备的全面覆盖,FTL帮助开发者高效进行兼容性测试、性能监控和崩溃分析,显著提升应用质量。文章还提供了设备选择策略、成本控制技巧和CI/CD集成的最佳实践,助力团队优化测试流程。

weixin_29281915的博客 255

【MySQL】视图详解

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的 通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上

m0_72532428的博客 1507

LCD工程师必看:Pixelclock、Mipi Clk计算全解析(附实用公式)

本文为LCD工程师详细解析了像素时钟(Pixelclock)与MIPI时钟(Mipi Clk)的核心计算方法。文章从时序参数构成入手,通过实战公式推导,系统阐述了从屏幕分辨率、刷新率到最终MIPI速率的高效计算链路,并提供了实用的调试思路与排查清单,帮助工程师快速解决画面撕裂、闪烁等常见问题。

weixin_29266679的博客 393

mysql数据库中的视图view的概念和详细说明

MySQL中的视图(View)是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含行和列,但视图不包含在数据库中以存储数据值所占用的物理空间。相反,它包含的是一个SQL语句(称为视图的定义),这个SQL语句从其他表中检索数据,然后可以像表一样进行查询操作。通过视图,客户端不再需要知道底层table的表结构及其之间的关系。视图提供了一个统一访问数据的接口。视图简单理解如下:通过视图,客户端App不再需要知道底层table的表结构及其之间的关系。视图提供了一个统一访问数据的接口。可以更新视图、删除视图。

weixin_70208651的博客 1795

ThingsBoard移动应用详细讲解

ThingsBoard移动应用详细讲解

AldrichEugene 531

手把手教你学AI GPU的UMD驱动软件开发专栏简介

通过本专栏的学习,您将掌握UMD的核心概念、开发环境搭建、API实现、内存管理和同步技术,以及在实际AI场景中的应用。通过本专栏的学习,您将不仅掌握UMD驱动开发的核心技术,还将能够将这些技术应用到实际的AI应用场景中,为您的AI应用提供更高效的硬件加速支持。无论您是想开发自己的AI加速框架,还是希望深入理解现有AI加速库的工作原理,本专栏都将为您提供宝贵的知识和实践经验。:本专栏不仅讲解UMD驱动的核心概念,还通过精心设计的实战案例,引导您从零开始构建UMD驱动,真正掌握AI GPU驱动开发的技能。

MHD0815的博客 115

MySQL视图的使用教程

同真实的表一样,视图包含一系列带有名称的列和行数据。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。但是,如果视图包含聚合函数、DISTINCT去重、GROUP BY分组、HAVING筛选或UNION ALL查询结果合并等结构,则视图不可更新。通过以上教程,你可以掌握MySQL视图的基本概念和用法,包括创建、使用、修改和删除视图等操作。同时,你也应该了解视图的优点和缺点以及在使用视图时需要注意的事项。同样地,在某些情况下,可以通过视图来删除基表中的数据。视图的定义,使其只包含。

蜡笔小新星的博客 1118

Apache DolphinScheduler 实现了对 OceanBase 的元数据库支持

Apache DolphinScheduler 是一款开源的分布式工作流任务调度系统,它提供了可视化的工作流设计和调度功能,支持大数据任务的自动化调度和监控。最近的更新中,Apache DolphinScheduler 引入了对 OceanBase 数据库的元数据库支持,这为用户在大数据环境中管理和调度任务提供了更多选择。用户可以通过 DolphinScheduler 提供的可视化界面进行工作流的设计和调度,也可以通过 DolphinScheduler 提供的 API 进行任务的编程调度。

VavzNvml的博客 500

mysql视图 实例讲解_mysql视图功能与用法实例分析

本文实例讲述了mysql视图功能与用法。分享给大家供大家参考,具体如下:通俗的讲,视图就是一条SELECT语句执行后返回的结果集。 //单表视图CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}]VIEW 视图名 [(属性清单)]AS SELECT 语句[WITH [CASCADED|LOCAL] CHECK OPTION];//将查询到的结果返回为一个虚...

weixin_35757736的博客 234

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

MySQL中视图的用法简述

MySQL视图基本用法 3.删除视图语法格式 DROP VIEW 视图名

sysouthello的博客 372

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL视图及用法

MySQL视图是一种虚拟表,它本身不包含数据,只保存SQL语句。视图通过使用SQL语句来描述基表中的数据,所以视图的数据是动态出来的,依赖于基表的数据。

程序猿老白~的博客 269

mysql as用法_MySQL 视图

看到这里,或许你已经对MySQL 的基本操作了如指掌,这篇文章讲解MySQL高级功能中 视图的概念及其用法。什么是视图 ( view ) ?视图,即虚拟表,通过底层接口封装的 SQL 语句查询到的内容作为虚拟表中的数据,因此视图中的记录来自数据表,它本身不存储数据。视图可以连接一个或多个数据表的部分字段,也可以针对不同的用户创建不同的查询视图。如何创建视图 ?把经常查询的结果集放到虚拟表中,提升使...

weixin_39857792的博客 469

MySQL视图(view)基本用法

MySQL视图(view)基本用法 MySQL中的视图(view)是一种虚拟表,其内容由查询定义,是一个逻辑表,本身并不包含数据。视图看起来和真实的表完全相同,但其中的数据来自定义视图时用到的基本表,并且在打开视图时动态生成。 视图可以在基本表上定义,也可以使用其他视图定义。与直接操作基本表相比,视图具备以下优点: (1)简化操作:通过视图可以使用户将注意力集中在他所关心的数据上。使用视图的用户完...

睿思达DBA 1万+

什么是MySQL视图?视图含义及用法解析

文章目录什么是视图视图的特性视图的作用创建视图修改视图删除视图视图机制替换式具化式替换式与具化式区别视图不可更新部分 什么是视图 视图是一个虚拟表,其内容由查询定义。 同真实的表一样,视图包含系列带有名称的列和行数据。 行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。 简单的来说视图是由select结果组成的表。 举个栗子 使用查询表命令 SELECT * FROM 表名 ;...

JF的博客 1561

mysql视图表怎么设置约束_mysql视图功能与用法实例分析

本文实例讲述了mysql视图功能与用法。分享给大家供大家参考,具体如下:通俗的讲,视图就是一条SELECT语句执行后返回的结果集。//单表视图CREATE [ALGORITHM]={UNDEFINED|MERGE|TEMPTABLE}]VIEW 视图名 [(属性清单)]AS SELECT 语句[WITH [CASCADED|LOCAL] CHECK OPTION];//将查询到的结果返回为一个虚拟...

weixin_34207925的博客 311

mysql检查性视图用法_mysql关于视图的用法以及作用

关于视图的用法以及作用。作用一:提高了重用性,就像一个函数。如果要频繁获取user的name和goods的name。就应该使用以下sql语言。示例:select a.name as username, b.name as goodsname from user as a, goods as b, ug as c where a.id=c.userid and c.goodsid=b.id;但有了视...

weixin_26824207的博客 181

MySQL中视图的介绍和用法

通过本文,我们详细介绍了MySQL数据库中视图的概念和使用方法。视图是一种强大的工具,可以简化复杂的查询操作,提高查询效率,并实现数据的安全性和隐藏敏感信息。合理应用视图可以改善数据库应用系统的开发效率和数据查询能力。

小羊的博客 475

mysql检查性视图用法_【转】MySQL之视图详解

创建视图:CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]VIEW view_name [(column_list)]AS select_statement[WITH [CASCADED | LOCAL] CHECK OPTION]mysql> create view v_emp as select empno...

weixin_42349182的博客 381

[MySQL] 视图的说明和用法

数据库视图的简介: 数据库视图是虚拟表或者逻辑表,它被定义为具有 连接(JOIN) 属性的SQL SELECT语句.视图和数据库类似,由行和列组成,可以对数据库进行操作,所以也可以把视图看作经过封装的SQL语句.大多数数据库操作系统(MySQL等)都允许你通过一些先决条件(像赋予权限等)对数据库进行操作. 视图操作也是直接对数据库进行的,因此数据发生变化时视图也会进行变化. 数据库视图的优缺...

ass_iss_ion的博客 546

mysql视图的特征_MySQL基础篇(04):存储过程和视图,用法和特性详解

> 本文源码:[GitHub·点这里](https://github.com/cicadasmile/mysql-data-base) || [GitEE·点这里](https://github.com/cicadasmile/mysql-data-base)# 一、存储过程## 1、概念简介存储程序是被存储在服务器中的组合SQL语句,经编译创建并保存在数据库中,用户可通过存储过程的名字调...

weixin_39760689的博客 146
上一篇: Mysql数据表管理之列的增删改
下一篇: Mysql触发器用法
FreeeLinux
博客等级 码龄11年 421粉丝 356原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值