1、with as用法:
with as短语,也叫做子查询部分,是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到, 比如
with A as (select * from class)
select *from A ;
这个语句的意思就是,先执行select * from class 得到一个结果,将这个结果记录为A ,在执行select *from A 语句。
2、创建视图、with as 格式区分
#with as
WITH a AS (SELECT * FROM table_a) # 在这里没有分号
SELECT col FROM a;
#创建视图
CREATE VIEW a AS
SELECT * FROM table_a;
SELECT * FROM a limit 10;
#注意两个格式一个没分号,一个没括号
3、with as、创建视图、临时表 区别与使用场景
区别:
①with as:直接用子查询效率上没有什么区别,执行完毕自动删除
②视图:是一条预编译的SQL语句,并不保存实际数据,是一个虚表,可以把视图想象成联合表的快捷方式。
③临时表:与永久表相似,是客观存在的表类型对象,相当于第二次直接关联的是一个小表。
使用场景:
①with as 适用于:为了增加代码可读性,且没有很多复杂的关联子查询。
②视图适用于:便于复用的视图。
③临时表适用于:有很多复杂的关联子表查询。