Mysql系列SQL查询语句书写顺序及执行顺序详解

关于"Mysql系列SQL查询语句书写顺序及执行顺序详解"的攻略,我们可以从以下几个方面进行介绍。

常见的查询语句书写顺序

为了方便理解,在学习查询语句的过程中,我们一般会按照以下的顺序来书写我们的查询语句:

  1. 选择需要查询的列,使用select关键字。
  2. 确定查询的表名或视图名,使用from关键字,并指定查询表或视图的名称。
  3. 指定额外的条件,使用where关键字,并使用比较运算符和逻辑运算符来进行数据筛选。
  4. 对查询结果进行分组,使用group by关键字。
  5. 进行分组后的筛选,使用having关键字。
  6. 对查询结果进行排序,使用order by关键字。

查询语句的执行顺序

在我们书写完查询语句以后,这些语句的执行顺序是非常重要的。我们来看一下常见的查询语句的执行顺序:

  1. from
  2. join
  3. on
  4. where
  5. group by
  6. having
  7. select
  8. distinct
  9. order by
  10. limit

示例说明

为了更好地理解上述的执行顺序和书写顺序,我们来看两个具体的示例。

示例一:

假设有如下的学生信息表:

id name age
1 Tom 18
2 Jack 20
3 Mary 19

我们现在想要查询年龄大于18岁的学生姓名,按照从小到大的顺序排列。

那么我们的查询语句可以写成:

select name from student where age > 18 order by age asc;

这个查询语句的执行顺序为:from -> where -> select -> order by。

即先从表中选择需要查询的行,然后对这些行进行筛选,再选择需要查询的列,在最后对所选列进行排序。最终我们会得到如下的结果:

name
Mary
Jack

示例二:

假设现在有两张表格,一张表包含商品信息,另一张表包含订单信息。表格信息如下:

商品信息表:

id name type
1 手机 电子
2 电视 家电
3 衣服 服装
4 餐具 生活用品

订单信息表:

id user product_id amount create_time
1 张三 2 1 2022/3/10 10:11:01
2 李四 1 2 2022/3/11 10:11:01
3 王五 3 3 2022/3/12 10:11:01

我们现在需要查询出每个商品的总销售量,并按照销售量从大到小排序。

那么我们的查询语句可以写成:

select product.name, sum(order.amount) as total_sales 
from order 
join product on order.product_id = product.id 
group by order.product_id 
order by total_sales desc;

这个查询语句的执行顺序为:from -> join -> group by -> select -> order by。

即首先我们要将两张表格进行联结,然后对新联结的表格进行分组,然后选择要查询的列,并利用聚合函数进行计算,最后对计算结果进行排序。最终我们会得到如下的结果:

name total_sales
衣服 9
手机 1
电视 1

以上就是"Mysql系列SQL查询语句书写顺序及执行顺序详解"的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql系列SQL查询语句书写顺序及执行顺序详解 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 最全50个Mysql数据库查询练习题

    以下是我对于“最全50个Mysql数据库查询练习题”的完整攻略。 标题 1. 背景介绍 在学习Mysql数据库的过程中,很重要的一个环节就是实践。但是很多人在实践过程中往往难免会遇到一个问题,就是“题目不够多”。为此,我整理了一份“最全50个Mysql数据库查询练习题”,希望能够帮助大家更好地练习Mysql数据库查询语句。 2. 攻略内容 本攻略将按照以下顺…

    database 2023年5月21日
    00
  • 使用SQL Server 获取插入记录后的ID(自动编号)

    为了获取插入记录后的ID,我们需要使用 SQL Server 中的自增长字段(也称为自动编号)。自增长字段是一个特殊的列,它会自动为每个新的记录分配一个唯一的值,通常用于记录的主键。 下面是获取插入记录后的ID的步骤: 步骤一:创建表 首先,我们需要在数据库中创建一个包含自增长字段的表。 CREATE TABLE [dbo].[customers]( [cu…

    database 2023年5月21日
    00
  • PHP程序员玩转Linux系列 备份还原MySQL

    PHP程序员玩转Linux系列 备份还原MySQL 简介 当我们在网站开发中涉及到MySQL数据库的操作时,备份还原数据库是很必要的操作。Linux系统提供了多种方式来备份和还原MySQL数据库。 方法一:使用 mysqldump 命令 备份数据库 使用 mysqldump 命令可以备份MySQL数据库。以下是备份的命令: mysqldump -u user…

    database 2023年5月22日
    00
  • php连接微软MSSQL(sql server)完全攻略

    PHP连接微软MSSQL是一项非常常见的任务,但一些开发人员可能会有一些困难,因为两个不同的技术栈可以相互交互,因此可能需要一些额外的配置和处理。本文将完整介绍连接微软MSSQL的过程和所需的所有步骤。 前提条件 在开始与MSSQL进行连接之前,我们需要确保已经安装了以下软件: PHP Microsoft SQL Server驱动程序 Microsoft O…

    database 2023年5月22日
    00
  • linux数据库备份并通过ftp上传脚本分享

    下面是关于“Linux数据库备份并通过FTP上传脚本分享”的完整攻略。 前置条件 在进行以下操作之前,请确保已经: 安装 MySQL 数据库 熟悉 MySQL 命令行操作 安装了 FTP 工具,比如 lftp 步骤一:编写备份脚本 下面是针对 MySQL 数据库编写备份脚本的示例代码: #!/bin/bash # 设置数据库参数 DB_HOST=localh…

    database 2023年5月22日
    00
  • MySQL与Oracle差异比较之五存储过程&Function

    MySQL与Oracle差异比较之存储过程&Function 存储过程 MySQL中的存储过程 MySQL中的存储过程是一组SQL语句的集合,可以保存并重复使用,类似于函数的概念。与函数的区别是,存储过程可以接受参数和返回结果集合。存储过程在MySQL中通常使用DELIMITER语句进行定义,并使用CALL语句进行调用。 示例: DELIMITER …

    database 2023年5月21日
    00
  • SUSE Linux下源码编译方式安装MySQL 5.6过程分享

    下面详细讲解“SUSE Linux下源码编译方式安装MySQL 5.6过程分享”的完整攻略: 准备工作 下载MySQL 5.6源码包:可以在MySQL官网下载最新版的源码包。 安装必要的依赖库:先执行以下命令安装依赖库,其中包含了编译MySQL必要的库。 bash sudo zypper install make cmake gcc gcc-c++ sudo…

    database 2023年5月22日
    00
  • Mysql事物锁等待超时Lock wait timeout exceeded;的解决

    Mysql事物锁等待超时是指在Mysql的事务处理过程中,一个事务因为获取锁等待超时而被阻塞,这种情况会导致事务无法执行而出现异常。下面来详细讲解一下如何解决这个问题。 什么是Mysql事物锁等待超时 MySQL的事务隔离级别是通过锁机制来实现的,这个锁机制包括表级锁和行级锁两种,其中行级锁是通过InnoDB存储引擎来实现的。 当多个事务对同一行记录进行修改…

    database 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部