既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
+ [如何操作视图中的数据?](#_86)
+ [视图的好处](#_93)
+ [总结](#_101)
临时表
临时表:内部临时表和外部临时表
- 内部临时表主要用于性能优化,由系统自动产生,我们无法看到;
- 外部临时表通过
SQL
语句创建,我们可以使用。- 用临时表来存储
SQL
查询的中间结果。
CREATE TEMPORARY TABLE 表名 (
字段名 字段类型, ...
); -- 通常搭配select使用
跟普通表相比,临时表有 3 个不同的特征:
- 临时表的创建语法需要用到关键字
TEMPORARY
; - 临时表创建完成之后,只有当前连接可见,其他连接是看不到的,具有连接隔离性;
- 临时表在当前连接结束之后,会被自动删除.
因为临时表有连接隔离性,
不同连接创建相同名称的临时表也不会产生冲突
,适合并发程 序的运行。而且,连接结束之后,临时表会自动删除,也不用担心大量无用的中间数据会 残留在数据库中。因此,我们就可以利用这些特点,用临时表来存储 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 查询语句


**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618668825)**
化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.youkuaiyun.com/topics/618668825)**