这是对SQL语句完整的执行顺序(01)的补充:

数据库是mysql,使用的数据库表名称是my_student.

表的完整数据信息是:

完整语法是:

Select [select选项] 字段列表[字段别名]/* from 数据源 [where 字句] [group by子句 ][having 子句][order by 子句][limit 子句];

①[select选项]:

Select 选项包含:ALL(所有,默认)、distinct(去重)。其中distinct针对的是查询结果的整条记录而言的。

select DISTINCT(sex) from my_student;

select DISTINCT(sex),name from my_student; 和 selectDISTINCT sex,name from my_student;结果是一样的。

②[where 字句]:where是唯一一个从磁盘开始拿数据的时候就开始进行判断的条件,从磁盘取出一条记录,开始进行where判断,判断结果如果成立,那么取出结果保存到内存,否则放弃。

select * from my_student where name = '哈哈1';

③[group by 子句 ]:分组子句,group by子句主要的作用是分组,从而进行统计操作,而不是为了展示(展示的时候,只会展示分组记录的第一条记录),分组时,一般会结合使用count()、max()、min()、avg()、sum()函数。

A、单子段分组:

selectc_id,count(*),max(height),min(height),avg(height),sum(age) from my_studentgroup by c_id ;

sql语句的意思是:my_student表以c_id进行分组,然后显示分组后的每组的c_id名称、每组的总数、每组的最高、最低、平均身高和每组的年龄总和。

B、多字段分组

select c_id,sex,count(*),max(height),min(height),avg(height),sum(age)from my_student group by c_id ,sex;

表示的含义是,对整个表先按照c_id进行分组,然后在此分组的基础之上,然后每组再按照sex,进行分组。

C、多字段分组(加上显示每组的某一字段的所有数据)

selectc_id,sex,count(*),max(height),min(height),avg(height),sum(age) ,GROUP_CONCAT(name)from my_student group by c_id ,sex;

④[having 子句]:having的作用类同where,而且having能做几乎所有where能做的事情,而where却不能做having能做的很多事情,主要是因为

where只能在磁盘提取数据的时候对数据进行操作;而在内存中对数据进行group by分组之后的结果进行处理,只能通过having。

selectc_id,count(*),max(height),min(height),avg(height),sum(age) from my_studentgroup by c_id having COUNT(*) >= 3;

⑤[order by 子句]:对数据进行排序操作,根据某个字段进行升序或者降序排序。(进行多字段排序的时候,先根据某一字段进行潘旭,然后在排序好的内部再按照某字段进行排序)

A、单个字段的排序:

select * from my_student order by c_id;

B、多字段排序

select * from my_student order by c_id,sex;

⑥[limit 子句]:限制结果的数量。Limit 偏移量  记录条数;

A、select * frommy_student limit 2;

B、select * frommy_student limit 0,3;

转自:https://blog.csdn.net/u011991249/article/details/64519945

mysql语句的执行顺序_SQL语句完整的执行顺序(02)相关推荐

  1. mysql limit 执行顺序_SQL语句执行顺序及MySQL中limit的用法

    一. SQL语句执行顺序及MySQL中limit的用法 执行顺序:from... where...group by... having.... select ... order by... limit ...

  2. MySQL备份恢复之mysqldump备份_SQL语句模式

    mysqldump备份_SQL语句模式 mysql备份类型 1.分为冷备和热备 冷备就是在数据库shutdown以后进行备份 热备就是在数据库open进行备份 2.又可以分为物理备份和逻辑备份 (1 ...

  3. mysql如何查询月薪总额_SQL语句统计每天、每月、每年的销售总额

    展开全部 一.32313133353236313431303231363533e4b893e5b19e31333366306530SQL语句统计每年的销售总额 select year(ordertim ...

  4. mysql语句如何做加减乘除_SQL 语句 加减乘除法 表达式 怎么写?

    SELECT distinct a.购房人,a.房间号,(a.总房价 - (SELECT SUM( b.已收款金额 ) FROM table1 a, table2 b WHERE a.房间号 = b. ...

  5. mysql根据字段长度查询_SQL语句如何查询某一字符串字段长度等于某个值的所有记录...

    展开全部 可以32313133353236313431303231363533e59b9ee7ad9431333366303066使用length()函数.比如:select * from test  ...

  6. mysql 执行顺序 SQL语句执行顺序分析

    最近在做一个数据库的大作业,算是复习了下MySql里面比较复杂的一些语句的用法,如Left Join之类的.在这里就不对具体语法进行记录了,希望能在以后经常用到,而不是隔好长时间用一次.在这里就记录下 ...

  7. MySQL补充部分-SQL逻辑查询语句执行顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  8. SQL Select语句完整的执行顺序:

    SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函 ...

  9. Oracle中Select语句完整的执行顺序

    oracle Select语句完整的执行顺序:1.from 子句组装来自不同数据源的数据: 2.where 子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使 ...

最新文章

  1. 计算机软件3十2二5,计算机软件基础3.2 操作系统.pdf
  2. ScrollView 嵌套EditText 滑动冲突解决
  3. Ubuntu14搭建配置青岛大学OJ系统
  4. 修改android virtual device路径
  5. 通过adb命令查看当前activity(更新版)
  6. java火柴人吃豆豆,4399游戏火柴人吃豆豆全图文通关攻略分享
  7. Python 背英语单词源代码
  8. ChunJun Meetup演讲分享 | 基于袋鼠云开源框架的数仓一体化建设探索
  9. 计算机网络——物理层
  10. 白皮书是什么?如何写产品白皮书?
  11. ${}和`${}`的用法
  12. “晓白”学python-科普篇(2)-人们都用python做什么?
  13. Kibana:Kibana Query Language - KQL
  14. 2022下半年CV计算机视觉领域可投稿国际会议列表(含录用率)
  15. 第一次实习经历分享Android开发
  16. PC威信 3.8.0 测试HOOK接口
  17. 深圳软件测试培训:测试当中用到的性能指标
  18. CSS_01_样式结构及选择器
  19. Linux:分享七款界面非常漂亮的Linux操作系统
  20. python密码学凯撒密码_凯撒密码在Python

热门文章

  1. 阿里技术嘉年华-aDev内容感悟
  2. NT系统DOS网络命令记录
  3. FBL3N增加表字段
  4. SAP物料移动类型和自动科目设置(包含财务,pp)
  5. smartforms金额或者数量字段显示不出来
  6. SAP FI/CO模块调研问卷
  7. 【MM】采购退货的处理办法
  8. SAP PP 中关于计划订单和生产订单的日期计算
  9. ABAP设置输入焦点和表格控件行数的注意事项
  10. 华为被上汽狂DISS:智能驾驶时代车企呼唤“主权”?