熟练掌握sql语句的执行顺序,才能避免编程中各种bug和错误。

文章目录

  • 一、Select 语句完整的执行顺序
    • 1、from 子句组装来自不同数据源的数据+(ON过滤器)或(JOIN 添加外部行);
    • 2、where 子句基于指定的条件对记录行进行筛选;
    • 3、group by 子句将数据划分为多个分组;
    • 4、使用聚集函数进行计算;
    • 5、使用 having 子句筛选分组;
    • 6、计算所有的表达式;
    • 7、select 的字段+(DISTINCT去重);
    • 8、UNION连接的两个SELECT查询语句
    • 9、使用 order by 对结果集进行排序。
    • 10、Limit
  • 觉得可以的话,点个赞呗,收藏一下也行

一、Select 语句完整的执行顺序

1、from 子句组装来自不同数据源的数据+(ON过滤器)或(JOIN 添加外部行);

FROM子句执行顺序为从后往前、从右到左。+(ON过滤器)或(JOIN 添加外部行)

2、where 子句基于指定的条件对记录行进行筛选;


具体用法:
1.between后面是下限,and 后面是上限

--查询Sage 在30-100之间的所有数据
select Sname name ,Sage age from student where Sage between 30 and 1000;

2.in() 括号内是个自定义集合 还可以是结果集

select * from student where Sex in(‘男’,’女’);

3.like用法

select * from student where Sname = ‘xyd’;
--等同
select * from student where Sname like ‘xyd’;
--数据库字符集是ASCII 码字符集 一个汉字用两个_ 如果是gbk 就用一个
select * from student where Sname like ‘x_d’;
--极端情况,查询的内容本身就含有%的字段,如'xy%d'
select * from student where Sname like 'xy%%d' escape '/';
--这样我们定义的转义字符后面的% 或者_ 就不再有通配符的含义了 而是仅仅代表他们本身

3、group by 子句将数据划分为多个分组;

把结果集按照某一列或者多列进行分组(值相等的一组)

select gender,count(name) from student group by gender;
select gender,count(name),sum(class_id) from student group by gender;

4、使用聚集函数进行计算;

注意:
1.聚集函数只能出现在select 后面或者 having 后面。不能放到WHERE子句中。
2.当聚集函数遇见空值的时候,除了count() 外 其余都跳过不进行处理* 。

select avg(Sage) from student where Sdept like ‘计算机%’;

5、使用 having 子句筛选分组;

如果分组后还要进行筛选 那么就需要having语句(有having,必须有group by)

select gender,count(name),sum(class_id) from student group by gender having gender= '女';

6、计算所有的表达式;

7、select 的字段+(DISTINCT去重);

也包括DISTINCT 去重,窗口函数是 SELECT 语句里,而 SELECT 是在 WHERE 和 GROUP BY 之后。

8、UNION连接的两个SELECT查询语句

UNION连接的两个SELECT查询语句,会重复执行步骤1~7,产生两个虚拟表1,UNION会将这些记录合并到新的虚拟表2中。

9、使用 order by 对结果集进行排序。

select * from student order by Sage asc; 查询结果按 Sage的结果升序排列
select * from student order by Sage desc;查询结果按 Sage的结果降序排列

10、Limit

以sid升序排序,显示前5行

select * from student order by sid desc limit 5;


(也可不用order by),跳过第三行显示,前五行

select * from student limit 3, 5;

觉得可以的话,点个赞呗,收藏一下也行

sql语句的执行顺序以及流程(最新,最全,直接用)相关推荐

  1. SQL语句的执行顺序以及流程

    目录 1.执行FROM语句 2.执行ON过滤 3.添加外部行 4.执行WHERE过滤 5.执行GROUP BY分组 6.执行HAVING过滤 7.SELECT列表 8.执行DISTINCT子句 9.执 ...

  2. SQL SERVER 一个SQL语句的执行顺序

    SQL SERVER 一个SQL语句的执行顺序 原文:SQL SERVER 一个SQL语句的执行顺序 一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表  如果是表表达式 依旧是如此顺序 ...

  3. MySQL 基础 ———— SQL语句的执行顺序与 LIMIT 子句

    引言 到目前为止,已经总结了常见的SQL子句,包括 SELECT .FROM.JOIN ... ON.WHERE.GROUP BY.HAVING.ORDER BY. 虽然SQL的书写顺序是固定的,但在 ...

  4. 【MySQL】九、数据排序(升序 order by ... asc,降序 desc),sql语句的执行顺序

    文章目录 1. 语法 2. 案例 (1)按照工资升序,找出员工名和薪资. (2)按照工资降序,找出员工名和薪资. (3)按照工资的降序排列,当工资相同的时候在按照名字的升序排列. (4)找出员工岗位是 ...

  5. 面试题:SQL语句的执行顺序

    SQL语句的执行顺序,学了才知道还有这么多学问 查询语句都是从 FROM 开始执行的.执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入. 具体解析 FROM 执 ...

  6. 关于SQL语句的执行顺序

    首先,要清楚在一select语句中都会用到哪些关键字: -----------select -----------from -----------join -----------where ----- ...

  7. 数据库:SQL语句的执行顺序,及每一步的详细解释

    一.SQL语句的执行顺序举例(sqlServer版): (8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list&g ...

  8. hive 把mysql语句执行_Hive SQL 语句的执行顺序

    提示 Hive SQL 教程 编写中,使用过程中有任何建议,提供意见.建议.纠错.催更加微信 sinbam. 当我们写了一个 sql,但是执行起来很慢,这时如果我们知道这个sql的底层执行流程是怎样的 ...

  9. SQL语句的执行顺序

    查询语句中select from where group by having order by的执行顺序 1.查询中用到的关键词主要包含六个,并且他们的使用顺序依次为 select--from--wh ...

最新文章

  1. VTK:插值相机用法实战
  2. 使用Faster-Rcnn进行目标检测(实践篇)
  3. 前端测试利器--Browser-Sync启动命令
  4. ClickHouse到底有什么本事呢?互联网公司如此追捧
  5. java的幂运算_java数组五种运算符
  6. C1 WPF C1FlexGrid设置样式技巧:单元格设置背景色
  7. 海龟绘图两小时上手C语言 - 3 正方形螺旋线
  8. java验证jdk_jdk下载,配置,验证
  9. 数据库sql语句杂谈
  10. angualrjs学习总结二(作用域、控制器、过滤器)
  11. 基于单片机的电子秤(数码管)系统设计(#0416)
  12. 【饭谈】自动化有三宝:工资高,福利好,代码和人总有一个能跑
  13. [生存志] 第50节 七穆掌郑国
  14. 7个实用的Python自动化代码,技术改变生活,不再重复
  15. 在太空飞船里玩狼人杀是什么体验?
  16. 计算视频的信息传输速率
  17. 软件质量保证与测试大作业,软件测试大作业..docx
  18. 激活 window10 操作系统
  19. htc系统Android 7.1,这款HTC太强大,被誉为刷机之王,一路升到安卓7.1
  20. Minio Browser

热门文章

  1. HP CQ42 221AX 笔记本Win7 XP双系统安装成功经历
  2. Scrapy爬虫框架介绍
  3. 【我的OpenGL学习进阶之旅】解决使用VAO的时候误用glDisableVertexAttribArray导致无法渲染出现白屏或者黑屏的问题
  4. tomcat集群+redis实现session共享
  5. 为什么很多初创互联网公司要组建自己的技术团队,而不是选择外包?
  6. neo4j基本知识及Cypher语言
  7. html表格打横超出范围,excel表格超出打印范围怎么解决
  8. 微信小程序获取用户基本信息
  9. uniapp 微信小程序获取用户信息、手机号
  10. C语言判断字符是中文还是英文