2024年【MySQL】临时表 &视图_mysql 临时视图(1),腾讯架构师深入讲解C C++开发

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

+ [如何操作视图中的数据?](#_86)
+ [视图的好处](#_93)
+ [总结](#_101)

临时表

临时表:内部临时表和外部临时表

  • 内部临时表主要用于性能优化,由系统自动产生,我们无法看到;
  • 外部临时表通过 SQL 语句创建,我们可以使用。
  • 用临时表来存储 SQL 查询的中间结果。
CREATE TEMPORARY TABLE 表名 (
字段名 字段类型, ...   
); -- 通常搭配select使用

跟普通表相比,临时表有 3 个不同的特征:

  1. 临时表的创建语法需要用到关键字 TEMPORARY
  2. 临时表创建完成之后,只有当前连接可见,其他连接是看不到的,具有连接隔离性;
  3. 临时表在当前连接结束之后,会被自动删除.

因为临时表有连接隔离性,不同连接创建相同名称的临时表也不会产生冲突,适合并发程 序的运行。而且,连接结束之后,临时表会自动删除,也不用担心大量无用的中间数据会 残留在数据库中。因此,我们就可以利用这些特点,用临时表来存储 SQL 查询的中间结果。

如何用临时表简化复杂查询?

因为创建临时表就是为了存放某个查询的中间结果。直接用查询语句创建临时表比较快捷,而且连接结束后临时表就会被自动删除,不需要过多考虑表的结构设计问题(比如冗余、效率等)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
能不能把这 3 个表相互关联起来,把这些信息都汇总到对应的单品呢?答案是不行的,如果仅仅通过这 3 个表之间的连接进行查询,我们可能会丢失某些数据。为了解决这个问题, 我们需要把商品信息表的放到左边,与其他表进行左连接, 确保所以商品都包含在结果集中。

在这里插入图片描述

内存临时表和磁盘临时表

临时表也可分为内存临时表和磁盘临时表

-- 内存中的临时表:
create temporary table demo.mytrans 
(
	itemnumber int,
	groupnumber int,
	branchnumber int
)engine = memory
;

-- 创建一个同样结构的临时表 就是普通的临时表 MySQL 会默认存储引擎是 innoDB
create temporary table demo.xx 
(
	itemnumber int,
	groupnumber int,
	branchnumber int
);

他们的区别:

在这里插入图片描述

小结

在使用临时表的时候,要从简化查 询和挤占资源两个方面综合考虑,既不能过度加重系统的负担,同时又能够通过存储中间 结果,最大限度地简化查询。

视图

我们可以把一段查询语句作为视图存储在数据库中,在需要的时候, 可以把视图看做一个表,对里面的数据进行查询。

视图的创建

-- 创建视图的语法结构:
CREATE [OR REPLACE] 
VIEW 视图名称 [(字段列表)] 
AS 查询语句


![img](https://img-blog.csdnimg.cn/img_convert/2fcce60e736c28d5bf2eeab3bc02b97d.png)
![img](https://img-blog.csdnimg.cn/img_convert/6ee88465344edb9e35ee1650589a9d84.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618668825)**

化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618668825)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值