我一直在寻找一个查询,它显示了SQL中SELECT语句的语法顺序。
数据库引擎并不重要,我只想根据使用的子句看到select查询中最简单和最多变的表达式。
以下是我的第一次尝试,每个子句使用一次并使用适当的语法:
SELECT AVG/MIN/MAX/SUM/COUNT/DISTINCT(field_list) AS custom_name
FROM table1
JOIN field_list2
ON table2_field_to_join_on
= table1_field_to_join_on
WHERE condition
GROUP BY field_list_condition
HAVING conditions
ORDER BY field_list_order_condition ASC(default)/DESC
LIMIT number_of_records;
我只是在寻找更全面的上述版本。
编辑:回想起来,为什么这被标记为不清楚是有道理的。我不会删除这个问题,因为答案帮助我到达了我想要的地方,也可能帮助其他人下线。答案 0 :(得分:0)
来自http://dev.mysql.com/doc/refman/5.7/en/select.html
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[MAX_STATEMENT_TIME = N]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[PARTITION partition_list]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
显然这是特定于mysql的,但它提供了非常好的味道。