mysql select语法_MySQL SELECT语法(一)SELECT语法详解

SELECT的语法如下:

SELECT[ALL | DISTINCT | DISTINCTROW ]

[HIGH_PRIORITY]

[STRAIGHT_JOIN]

[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]

[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]

select_expr [, select_expr ...]

[FROMtable_references

[PARTITION partition_list]

[WHEREwhere_condition]

[GROUP BY{col_name | expr | position}

[ASC | DESC], ... [WITHROLLUP]]

[HAVING where_condition]

[ORDERBY{col_name | expr | position}

[ASC | DESC], ...]

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

[PROCEDURE procedure_name(argument_list)]

[INTO OUTFILE 'file_name'[CHARACTERSETcharset_name]

export_options

|INTO DUMPFILE 'file_name'|INTOvar_name [, var_name]]

[FOR UPDATE | LOCK IN SHARE MODE]]

一、SELECT解析

SELECT用于从一个或者多个表中取回数据行,也可以包括UNION语句和子查询。UNION语句参考后续文章,而子查询在手册13.2.10节。

SELECT语句最常用的子句有这些:

每个select_expr指示要检索的列。所以必须至少有一个select_expr。

table_references指示要从中取回行数据的一个或多个表。其语法在第13.2.9.2节“JOIN语法”中描述。

SELECT支持使用PARTITION显式分区选择,其中包含table_reference中表的名称后面的分区或子分区(或两者)列表。关于分区的更多信息在Section 22.6.4, “Partitioning and Locking”

如果存在WHERE子句,其中的条件对行数据进行筛选。where_condition是一个表达式,对于要选择的每一行,其计算结果为true。如果没有WHERE子句,该语句将选择所有行。在WHERE表达式中,您可以使用除聚合函数之外的任何MySQL支持的函数和运算符。See Section 9.5, “Expressions”, and Chapter 12, Functions and Operators.

SELECT也可用于检索计算的行而不引用任何表。

mysql> SELECT 1 + 1;-> 2

在没有引用表的情况下,允许将DUAL指定为虚拟表名:

mysql> SELECT 1 + 1 FROMDUAL;-> 2

DUAL的存在只是为了方便。MySQL可能会忽略这些子句。如果没有引用表,MySQL不需要FROM DUAL。

通常,使用的子句必须完全按照语法描述中展示的顺序给出。

例如,HAVING子句必须位于任何GROUP BY子句之后和任何ORDER BY子句之前。例外情况是INTO子句可以如语法描述中所示出现,也可以紧跟在select_expr列表之后出现。SELECT...INTO后续文章会讲。

select_expr项列表包括了要

你可能感兴趣的:(mysql,select语法)