SQL 表别名 和 列别名

列表名

列表名之后 order by 可以用别名 也可以用原名,

where 中不能用别名的

SQL语句执行顺序:

from-->where-->group by -->having --- >select --> order

第一步:from语句,选择要操作的表。

第二步:where语句,在from后的表中设置筛选条件,筛选出符合条件的记录。

第三步:group by语句,把筛选出的记录进行分组。

第四步:having语句,设置条件筛选分组后的数据。

第五步:select语句,选取经过上述流程后的结果集。

第六步:order by语句:将select后的结果集按照顺序展示出来。

注意:

掌握SQL语句执行流程非常重要,是理解并写好SQL语句的前提,根据实际业务逻辑要执行的数据库操作对应到SQL语句的执行流程能够帮助我们快速写出相应功能的标准SQL语句。

where和having区别:

where在group by前, having在group by 之后。

where 用于 过滤数据行 , having 用去过滤分组,是结果集过滤

where 针对数据库文件进行过滤,having 针对查询结果进行过滤,也就是说 where 根据数据表中的字段直接进行过滤的 having是根据前面已经查询出的字段(结果集)进行过滤 ,where 先过滤 having 后过滤

where中不能使用聚合函数,having中可以使用聚合函数。原因:因为聚合函数是针对结果集进行的,但where是在查询结果集之前进行,故where中不能使用聚合函数;having是针对结果集做筛选的,故一般把聚合函数放在having中。

HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法。

表别名

只要表使用别名,且 sql中所涉及的 原名 必须 使用表别名,否报错 xxx 过长的样子 错误

相关推荐
书山有鹿40 分钟前
PostgreSQL psql 命令和常用的 SQL 语句整理
数据库·sql·postgresql
GottdesKrieges3 小时前
OceanBase数据库磁盘空间管理
java·数据库·oceanbase
Themberfue4 小时前
Redis ⑦-set | Zset
java·开发语言·数据库·redis·sql·缓存
rainFFrain7 小时前
(MySQL)库的操作
数据库·mysql
八股文领域大手子9 小时前
深入理解缓存淘汰策略:LRU 与 LFU 算法详解及 Java 实现
java·数据库·算法·缓存·mybatis·哈希算法
noravinsc9 小时前
django admin 中更新表数据 之后再将数据返回管理界面
数据库·django·sqlite
春风不会绿大地9 小时前
IDEA编写flinkSQL(快速体验版本,--无需配置环境)
sql·flink
Bruce-li__11 小时前
DRF凭什么更高效?Django原生API与DRF框架开发对比解析
数据库·django·sqlite
noravinsc11 小时前
connection.cursor() 与 models.objects.filter
数据库·django·原生查询·orm查询
laimaxgg13 小时前
MySQL复合查询
数据库·mysql