SELECT
SELECT通常用于查询一个或多个表中的数据。
常用语法
SELECT [ALL | DISTINCT | DISTINCTROW ] select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ...] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}]
语法 |
说明 |
---|---|
select_expr |
每个select_expr都指示一个您想要查询的列。 |
FROM table_references |
指您将从某一个或多个表中查询。 |
WHERE |
关键词WHERE其后跟一个表达式,用于表示被选择的行所须满足的条件。 |
GROUP BY |
语法中被使用的子句将按一定的顺序排列,GROUP BY表示语句间关系,支持列名。如一个HAVING子句必须位于GROUP BY子句之后,并在ORDER BY子句之前。 |
ORDER BY |
语法顺序排列的一种方式,表示语句间关系,支持列名和指定的排序方式(如ASC、 DESC)。 |
LIMIT/OFFSET |
对输出结果集的偏移量及大小给予约束,如:LIMIT接受一个或者两个数字参数。 |
语法说明
- 暂不支持以空字符串作为别名。
- 不支持select ... group by ... with rollup查询(当查询的表为分片表时,无法得到预期的结果)。
- 暂不支持STRAIGHT_JOIN和NATURAL JOIN。
- select for update仅支持简单查询,不支持join、group by、order by、limit。
- select后输出字段要和表字段顺序保持一致,如果JOIN查询,将所有参与JOIN的字段都添加到select后的查询字段列表中,这样能提升SELECT查询效率。
- 对于UNION中的每个SELECT, DDM 暂不支持使用多个同名的列。
如下SQL的SELECT中存在重复的列名。
SELECT id, id, name FROM t1 UNION SELECT pk, pk, name FROM t2;