全面的SELECT语法

时间:2016-11-14 16:44:36

标签: mysql sql postgresql syntax

我一直在寻找一个查询,它显示了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;

我只是在寻找更全面的上述版本。

编辑:回想起来,为什么这被标记为不清楚是有道理的。我不会删除这个问题,因为答案帮助我到达了我想要的地方,也可能帮助其他人下线。

1 个答案:

答案 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的,但它提供了非常好的味道。