sql语句的执行顺序以及流程(最新,最全,直接用)
熟练掌握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语句的执行顺序以及流程(最新,最全,直接用)相关推荐
- SQL语句的执行顺序以及流程
目录 1.执行FROM语句 2.执行ON过滤 3.添加外部行 4.执行WHERE过滤 5.执行GROUP BY分组 6.执行HAVING过滤 7.SELECT列表 8.执行DISTINCT子句 9.执 ...
- SQL SERVER 一个SQL语句的执行顺序
SQL SERVER 一个SQL语句的执行顺序 原文:SQL SERVER 一个SQL语句的执行顺序 一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表 如果是表表达式 依旧是如此顺序 ...
- MySQL 基础 ———— SQL语句的执行顺序与 LIMIT 子句
引言 到目前为止,已经总结了常见的SQL子句,包括 SELECT .FROM.JOIN ... ON.WHERE.GROUP BY.HAVING.ORDER BY. 虽然SQL的书写顺序是固定的,但在 ...
- 【MySQL】九、数据排序(升序 order by ... asc,降序 desc),sql语句的执行顺序
文章目录 1. 语法 2. 案例 (1)按照工资升序,找出员工名和薪资. (2)按照工资降序,找出员工名和薪资. (3)按照工资的降序排列,当工资相同的时候在按照名字的升序排列. (4)找出员工岗位是 ...
- 面试题:SQL语句的执行顺序
SQL语句的执行顺序,学了才知道还有这么多学问 查询语句都是从 FROM 开始执行的.执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入. 具体解析 FROM 执 ...
- 关于SQL语句的执行顺序
首先,要清楚在一select语句中都会用到哪些关键字: -----------select -----------from -----------join -----------where ----- ...
- 数据库:SQL语句的执行顺序,及每一步的详细解释
一.SQL语句的执行顺序举例(sqlServer版): (8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list&g ...
- hive 把mysql语句执行_Hive SQL 语句的执行顺序
提示 Hive SQL 教程 编写中,使用过程中有任何建议,提供意见.建议.纠错.催更加微信 sinbam. 当我们写了一个 sql,但是执行起来很慢,这时如果我们知道这个sql的底层执行流程是怎样的 ...
- SQL语句的执行顺序
查询语句中select from where group by having order by的执行顺序 1.查询中用到的关键词主要包含六个,并且他们的使用顺序依次为 select--from--wh ...
最新文章
- VTK:插值相机用法实战
- 使用Faster-Rcnn进行目标检测(实践篇)
- 前端测试利器--Browser-Sync启动命令
- ClickHouse到底有什么本事呢?互联网公司如此追捧
- java的幂运算_java数组五种运算符
- C1 WPF C1FlexGrid设置样式技巧:单元格设置背景色
- 海龟绘图两小时上手C语言 - 3 正方形螺旋线
- java验证jdk_jdk下载,配置,验证
- 数据库sql语句杂谈
- angualrjs学习总结二(作用域、控制器、过滤器)
- 基于单片机的电子秤(数码管)系统设计(#0416)
- 【饭谈】自动化有三宝:工资高,福利好,代码和人总有一个能跑
- [生存志] 第50节 七穆掌郑国
- 7个实用的Python自动化代码,技术改变生活,不再重复
- 在太空飞船里玩狼人杀是什么体验?
- 计算视频的信息传输速率
- 软件质量保证与测试大作业,软件测试大作业..docx
- 激活 window10 操作系统
- htc系统Android 7.1,这款HTC太强大,被誉为刷机之王,一路升到安卓7.1
- Minio Browser