关于"Mysql系列SQL查询语句书写顺序及执行顺序详解"的攻略,我们可以从以下几个方面进行介绍。
常见的查询语句书写顺序
为了方便理解,在学习查询语句的过程中,我们一般会按照以下的顺序来书写我们的查询语句:
- 选择需要查询的列,使用select关键字。
- 确定查询的表名或视图名,使用from关键字,并指定查询表或视图的名称。
- 指定额外的条件,使用where关键字,并使用比较运算符和逻辑运算符来进行数据筛选。
- 对查询结果进行分组,使用group by关键字。
- 进行分组后的筛选,使用having关键字。
- 对查询结果进行排序,使用order by关键字。
查询语句的执行顺序
在我们书写完查询语句以后,这些语句的执行顺序是非常重要的。我们来看一下常见的查询语句的执行顺序:
- from
- join
- on
- where
- group by
- having
- select
- distinct
- order by
- 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技术站