iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 中 WITH 用法详解
  • 513
分享到

MySQL 中 WITH 用法详解

mysql 2023-08-31 09:08:20 513人浏览 独家记忆
摘要

一、什么是 WITH 子句 1. 定义 WITH 子句是 Mysql 中的一种 sql 结构,又称为 Common Table Expression (CTE)。它在不影响原有 SQL 语句的情况下,允许开发人员临时创建一个内存中的结果集,

一、什么是 WITH 子句
1. 定义
WITH 子句是 Mysql 中的一种 sql 结构,又称为 Common Table Expression (CTE)。它在不影响原有 SQL 语句的情况下,允许开发人员临时创建一个内存中的结果集,然后对其进行操作。

用途
WITH 子句的主要用途是创建一个暂时的结果集,这个结果集在后续的查询中可以多次使用。WITH 子句主要用于解决查询复杂度高的问题,因为它可以将多次需要的计算结果集存储下来,以便后续的查询可以直接使用。它还可以帮助我们更好地组织复杂的 SQL 查询,使得代码更加清晰易读。

二、WITH 子句的语法和用法
1.语法
WITH 子句的语法形式如下:

WITH cte_name (column_name1, column_name2, ...) AS ( SELECT column1, column2, ... FROM table WHERE condition )
1
其中,cte_name 是 WITH 子句的名称;column_name1、column_name2 等是结果集的列名;SELECT 子句定义了该结果集的内容;condition 是查询的过滤条件。

使用示例
首先,假设我们有一个名为“employees”的表,其中包含以下内容:

CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    salary INT
);

接下来,我们填充数据:

INSERT INTO employees (employee_id, first_name, last_name, salary)
VALUES 
    (1, 'John', 'Doe', 50000),
    (2, 'Jane', 'Doe', 55000),
    (3, 'Jim', 'Smith', 60000),
    (4, 'Sarah', 'Johnson', 65000),
    (5, 'Tom', 'Brown', 70000);

现在,我们可以使用 WITH 子句创建一个临时结果集,以计算每个员工的月薪:

WITH monthly_salary AS (
    SELECT employee_id, first_name, last_name, salary/12 AS monthly_salary
    FROM employees
)
SELECT *
FROM monthly_salary;

执行上述 SQL 代码后,将生成以下结果:

 

在这个示例中,我们使用 WITH 子句创建了一个名为“monthly_salary”的临时结果集,其中包含员工 ID、名字、姓氏和月薪。然后,我们选择了所有内容,并从该结果集生成了最终结果。

优点
WITH 子句的主要优点是允许开发人员将复杂的查询进行分解和抽象,以提高代码的可读性和可维护性。例如,如果需要对同一表的不同字段进行多次查询,可以使用 WITH 子句将这些查询的结果集抽象为一个独立的部分,从而避免代码的重复。

三、总结
WITH 子句是 mysql 中的语句,可以为查询提供临时表。这样可以避免在多个查询中重复定义数据,提高代码可读性,提高查询效率。
 

来源地址:https://blog.csdn.net/qq_45443475/article/details/131852423

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 中 WITH 用法详解

本文链接: https://www.lsjlt.com/news/385148.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 中 WITH 用法详解
    一、什么是 WITH 子句 1. 定义 WITH 子句是 MySQL 中的一种 SQL 结构,又称为 Common Table Expression (CTE)。它在不影响原有 SQL 语句的情况下,允许开发人员临时创建一个内存中的结果集,...
    99+
    2023-08-31
    mysql
  • 图文详解mysql中with...as用法
    最近无意中接触到了一篇文章,里面写了一个SQL的用法,是with...as,中午抽空记录一下 用MySQL试了一下,发现并不支持该语法(版本:5.7) 于是换作以下(版本:8.0...
    99+
    2024-04-02
  • mysql中with as用法
    mysql中with as用法:使用语法“with ali as (select age from student)select ali.age from ali”,with as主要用来创建一个临时表,在mysql8....
    99+
    2024-04-02
  • sql语句with as的用法详解
    这篇文章主要介绍“sql语句with as的用法详解”,在日常操作中,相信很多人在sql语句with as的用法详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”sql语句w...
    99+
    2024-04-02
  • MySQL中Truncate用法详解
    前言: 当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项。本篇文章主要介绍truncate语句的使用方法及...
    99+
    2024-04-02
  • mysql中sum用法详解
    sum() 函数计算指定列非空值的总和。它支持 distinct、过滤条件、部分和以及与其他聚合函数配合使用。sum() 忽略 null 值,负值返回负值,非数字值返回 null。 M...
    99+
    2024-05-09
    mysql 聚合函数
  • MySQL中with rollup的用法及说明
    目录MySQL with rollup的用法with rollup概述应用实例MySQL with rollup 聚合函数类似oracle cube操作作用题目示例MySQL wit...
    99+
    2022-11-13
    MySQL with rollup with rollup用法 MySQL with rollup用法
  • mysql中begin with的用法是什么
    在MySQL中,BEGIN WITH语句用于指定一个起始值,用于启动一个递归查询。它通常与WITH RECURSIVE一起使用,用于...
    99+
    2024-04-22
    mysql
  • mysql中with...as的用法是什么
    mysql中with...as的用法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。最近无意中接触到了一篇文章,里面写了一个SQL的用法,是with...as,中午抽空...
    99+
    2023-06-29
  • mysql中exists的用法详解
    前言 在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个 exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解决方案 语法解释 语法 SELEC&...
    99+
    2023-08-16
    mysql 数据库 database exists in
  • mysql中in的用法详解
    mysql in 操作符检查指定列是否包含给定值列表中的值。语法为:where column_name in (value1, value2, ..., valuen)。优点包...
    99+
    2024-04-26
    mysql
  • oracle中with用法
    with 语句通过定义临时表表达式 (cte) 提高了 oracle 查询的可读性、可重用性和性能:定义 cte:with as ()使用 cte:select ... fr...
    99+
    2024-05-09
    oracle 代码可读性
  • MySQL中find_in_set()函数用法详解
    1、 find_in_set()官方涵义(MySQL手册中语法说明) FIND_IN_SET(str,strlist),该函数的作用是查询字段(strlist) 中是否包含(str)的结果,返回结果为...
    99+
    2023-10-02
    mysql 数据库 sql
  • MySQL中with rollup的使用
    使用前提: 1、在使用group by 语句后,可能会对数据再次进行汇总,这个时候就需要with rollup。 2、with rollup 就是作用在聚合函数上的。如果聚合函数是COUNT(*)则会在统计的记录中再次求COUNT(*),如...
    99+
    2023-09-14
    mysql
  • mysql中with as怎么用
    这篇文章给大家分享的是有关mysql中with as怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在mysql中,“with as”也叫子查询...
    99+
    2024-04-02
  • oracle中with的用法
    with 子句在 oracle 中创建临时表或视图,用于创建复杂的临时表或视图,重命名查询结果并提高查询性能:创建临时表:with clause_name as (subquery)重命...
    99+
    2024-05-08
    oracle
  • MySQL中的@i:=@i+1用法详解
    在MySQL中,@i:=@i+1是一个非常有用的表达式,用于在查询中生成一个递增的序列号。它可以帮助我们对结果进行编号,或者在需要连续的数字序列时提供便利。 我们先来了解一下MySQL中的用户变量。用户变量是一个用户定义的变量,其以@开头。...
    99+
    2023-09-09
    mysql 数据库 sql
  • MySql中JOIN的用法示例详解
    目录笛卡尔积:CROSS JOIN内连接:INNER JOIN左连接:LEFT JOIN右连接:RIGHT JOIN外连接:OUTER JOINUSING子句自然连接:NATURE ...
    99+
    2024-04-02
  • mysql安装出现 conflicts with mysql*的解决办法
    mysql安装出现 conflicts with mysql*的解决办法 rpm -ivh Percona-Server-client-56-5.6.16-rel64.0.el6.x86_64.rpm --...
    99+
    2024-04-02
  • MySql变量用法详解
    自我介绍 我是IT果果日记 一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。 MySql变量主要分为系统变量、用户变量和局部变量,它们的区别是什么?分别有什么作用呢? 下面会一一给大家讲解一下,并结合...
    99+
    2023-09-10
    mysql sql Powered by 金山文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作