数据库学习笔记(5)-----with as的用法(2019/2/28)

本文深入探讨SQL中withas子句的运用,通过实例演示如何利用该子句创建临时表,提高数据处理效率,特别关注其在多子查询场景下的逻辑清晰性和性能优化。

数据库学习笔记(5)-----with as的用法(2019/2/28)

有如下表’student’

namelessongrade
JosonMath95
JosonChinese25
JosonEnglish80
JosonBiology75
JosonPhycial55

此时,我们可以通过with as方式,将这张表拆分为N张表存进当前SQL窗口的缓存中,例如:

with stu_name as(
select name,lesson from student;
),stu_grade as(
select name,lesson,grade from student;
)

那么,将会有两张临时表被存入了缓存中,分别叫做’stu_name’和’stu_grade’
stu_name:

namelesson
JosonMath
JosonChinese
JosonEnglish
JosonBiology
JosonPhycial

stu_grade:

namelessongrade
JosonMath95
JosonChinese25
JosonEnglish80
JosonBiology75
JosonPhycial55

如果我们想对这两张表进行操作的时候,可以使用如下方法:

with stu_name as(
select name,lesson from student;
),stu_grade as(
select name,lesson,grade from student;
)select * from stu_name;

记住:with as后面只能跟子查询语句,也就是’select’语句。
那么,如果我们需要将这份信息进行插入的时候,应该怎么办呢?可以用如下方法:

insert into dual(dummy)
with stu_name as(
select name,lesson from student;
),stu_grade as(
select name,lesson,grade from student;
)select name from stu_name;

此时就可以将’name’字段的数据插入’dual’表中了。

另:

用with as的优点:
1、在需要多个子查询的情况下,逻辑结构层次清晰,便于维护。
2、真正的做到了’一次读取,终生受用’对于需要重复读取表格数据的子查询语句的性能优化有很大的用处。

敲黑板:
在使用with as的时候,命名尽可能规范,注释尽可能完善,不然,其他小伙伴读你的代码的时候,比读子查询更累哦(Φ皿Φ)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值