PostgreSQL中SQL关键字的正确书写顺序是怎样的?
PostgreSQL SELECT查询关键字书写顺序规则
PostgreSQL 对SELECT查询的子句排列有强制语法要求,子句顺序错误会直接触发语法报错,常用基础查询的固定书写顺序从上到下依次为:
SELECT:定义需要返回的字段、聚合计算表达式,必须放在整条查询的最起始位置FROM:指定查询的数据来源(表、视图、子查询等),必须紧跟在SELECT子句之后WHERE:定义行级数据过滤规则,必须放在FROM子句之后- (扩展常用子句顺序,按需使用)后续如果用到分组、排序、分页类子句,顺序固定为:
WHERE→GROUP BY→HAVING→ORDER BY→LIMIT
正误写法对比
可正常执行的正确写法
SELECT count(*) FROM us_counties_pop_est_2019 WHERE births_2019 - deaths_2019 <=0;
该写法严格遵循SELECT → FROM → WHERE的语法顺序,数据库解析时会先定位到目标数据表,再按过滤条件筛出符合要求的行,最后统计行数返回结果。
会触发语法错误的错误写法
SELECT count(*) WHERE births_2019 - deaths_2019 <=0 FROM us_counties_pop_est_2019;
该写法将WHERE子句错放在FROM子句之前,数据库解析到WHERE条件时,尚未获取到数据来源表信息,无法识别条件中引用的字段,会直接抛出语法错误。
提示:SQL语句的书写顺序和数据库实际执行顺序并不完全一致,但编写代码时必须严格遵守语法规定的子句排列顺序,否则无法通过语法校验。
内容的提问来源于stack exchange,提问作者Mark Thomas
相关产品推荐
相关产品推荐

