1 WITH AS 短语

也叫做子查询部分(subquery factoring),是用来定义一个SQL片断

with t as (
select * from consumer
)
select * from t

该语句的作用是在, 大量的报表查询时, 使用 with as 可以提取出大量的子查询, 更加简洁

2 WITH 特性

  • with 其实就是一个子查询抽取出来,换了一个别名
  • 和视图的区别:with as 等同于一次性视图,只会持续到下一个查询。在之后就不能再被引用
  • 主要用于简化复杂的 数据集 和 递归

注:with 语法,不适合 mysql 8.0 版本之前

3 旧版本替代方案 temporary table

5.6 / 5.7 版本, with 的替代品

CREATE TEMPORARY TABLE detail SELECT id, end_time, statusFROM t_wl_record_repairs_detailWHERE end_time IS NULL;SELECT COUNT(1) as sum, 'today' as name FROM detail...
UNION
SELECT COUNT(1) as sum, 'd1' as name....
UNION...
  • 作用:临时表用来保存一些 ‘临时数据’

  • 特点:

    1. 临时表 仅在 ‘当前连接’ 可见,当关闭连接时,Mysql 会 ‘自动删除表数据及表结构’
    2. 临时表 和 普通表 用法一样,用关键字 ‘temporary’ 予以区别
-- 可以手动 insert
insert into temporary_test(tid, tname) values(1, 'a');
insert into temporary_test(tid, tname) values(2, 'b');
-- 也可手动 delete 和 drop
drop temporary table if exists temporary_test;

ps: 记录一下, 老是忘记 WHERE 语句 AND 优先级高于 OR

Mysql 的 WITH 语法相关推荐

  1. orcle与mysql的区别_Orcle与MySQL的SQL语法区别:

    Orcle与MySQL的SQL语法区别: 1.在Oracle中用 select * from all_users显示所有的用户,而在MySQL中显示所有数据 库的命令是 show databases ...

  2. MySQL中show语法使用总结

    MySQL中 show 语法的使用: 先查看MySQL版本信息: mysql> select version(); +------------+ | version() | +--------- ...

  3. MySQL 高级 - 存储过程 - 语法 - case结构

    MySQL 高级 - 存储过程 - 语法 - case结构 -- 给定一个月份, 然后计算出所在的季度 create procedure pro_test7(mon int) begindeclare ...

  4. MySQL 高级 - 存储过程 - 语法 - if判断 || 传递参数 (IN - 输入 OUT-输出)

    MySQL 高级 - 存储过程 - 语法 - if判断 传递参数

  5. Sybase和mysql语法_主流数据库复制表结构(SqlServer/Mysql/Oracle/Sybase)[语法差异分析]...

    因为数据库SQL语句在各大产品中带有"方言性",即SQLSERVER SYBASE都是用了T-SQL,Mysql是用的标准SQL,Oracle有有自己的PL/SQL.由于这种&qu ...

  6. mysql库与oracle库的区别_开源数据库Oracle与MySQL的SQL语法区别

    Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的SQL语法区别: 1.在Oracle中用sele ...

  7. mysql与oracle语法对比(实用)

    oracle sql语法不同于mysql的sql语法 不同点: 1. mysql: IFNULL(a,b) oracle: NULLIF(a,b) 2. mysql: 可以用Date类型的日期进行比较 ...

  8. MySQL操作数据库语法及常见MySQL面试题与答案

    MySQL操作数据库语法 ## 创作不易点点关注,这样我才有更大的动力!**** 操作数据库 结构化查询语句分类 名称 解释 命令 DDL(数据定义语言) 定义和管理数据对象,如数据库,数据表等 CR ...

  9. MySQL创建视图语法,MySQL视图的作用

    MySQL创建视图语法,MySQL视图的作用 一.语法 1. MySQL创建视图语法如下: CREATE VIEW view_name AS SELECT * FROM table_name ; 2. ...

  10. Mysql存储过程基本语法

    Mysql 存储过程基本语法 转载自这篇文章 delimiter // 一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执 ...

最新文章

  1. jvm性能调优实战 -60 线上系统的JVM参数优化、GC问题定位排查、OOM分析解决
  2. 项目: flappy bird
  3. DiscuzToolkit
  4. 安卓实现序列化之Parcelable接口
  5. Diskpart 磁盘管理实战演示
  6. 和Hibernate3.6相比,Hibernate 5.x中的增删改性能降低了
  7. 杭电1861 游船出租
  8. steam密码查看_如何查看和清除Steam中的先前别名
  9. CANOe系列讲解 - CANoe发送UDS诊断帧
  10. IO summery
  11. 为远程群晖NAS的自定义域名配置SSL证书
  12. Android 离线人脸识别方案总结
  13. python 线程thread详解
  14. 横河川仪压力变送器故障代码_横河川仪压力变送器
  15. Linux中怎么搭建Discuz论坛
  16. linux小红帽网卡设定,linux下网卡如何开启flow control
  17. Hadoop实战记录-目录
  18. ABP VNext学习日记7
  19. 计算电磁基本参数设置
  20. 带符号整数中负数采用什么编码_在个人计算机中,带符号整数中负数是采用________编码方法表示的。...

热门文章

  1. java复制文件拒绝访问权限_无法复制文件,拒绝访问路径
  2. php的fwrite,PHP中fwrite与file_put_contents性能测试代码
  3. css如何实现数字在图标上显示
  4. 结构体的类型,定义,引用
  5. thinkphp5第三方合同在线签署接口(放心签)demo
  6. SAP中 ABAP 中 跳转到指定事务代码界面2种方式
  7. 网络编程之重构echo服务器
  8. IT创业见闻04-创业需具备最重要的资源是什么
  9. throw和throws的区别
  10. 【小白学Java】D32》》》IO流 之 序列化流 打印流