SELECT语句的语法(子博客)
引言:
MySQL 中使用 SELECT 语句来查询数据,既可以用来判断表达式,也可以从一个或多个表中查询数据。
SELECT 语句从表中查询数据的基本语法如下:
SELECT [ALL | DISTINCT] select_list FROM table_or_view_name [WHERE <search_condition>] [GROUP BY <group_by_expression>] [HAVING <search_condition>] [ORDER BY <order_expression>] [ASC | DESC]
上述语法的说明如下:
1)SELECT 子句
用来指定查询返回的列
2)ALL | DISTINCT
用来标识在查询结果计中对相同行的处理方式。
关键字 ALL 表示返回查询结果集的所有行,其中包括重复行;
关键字 DISTINCT 表示如果结果集又重复行,那么只显示一行,默认值为 ALL。
3)select_list
表示需要查询的字段列名。
如果返回多列,各列名之间用 “ ,” 隔开;如果需要返回所有列的数据信息,则可以用 * 表示。
4)FROM 字句
用来指定要查询的表名或者视图名。
5)WHERE 字句
用来指定限定返回行的搜索条件
6)GROUP_BY 字句
用来指定查询结果的分组条件
7)HAVING 字句
与 GROUP_BY 字句组合使用,用来对分组的结果进一步限定搜索条件。
8)ORDER_BY 字句
用来指定结果集的排序方式
9)ASC | DESC
指定排序方式。ASC (默认值)表示升序排列,DESC 表示降序排列。
说明:
在 SELECT 语句的语法中,中括号 [ ] 的内容是可选的。
如果有 WHERE 字句,就会按照指定的条件进行查询,否则就查询所有记录。
如果有 GROUP_BY 字句,就会按照指定的字段进行分组;如果 GROUP_BY 字句后带着 HAVING 关键字,那么只有满足指定的条件才能输出。
如果有 ORDER_BY 字句,就会按照指定的字段进行排序,排序方式由 ASC 和 DESC 指定。
PS:在 SELECT 语句中 FROM,WHERE。GROUP BY 和 ORDER BY 字句必须按照语法中列出的次序依次执行。
例如,如果把 GRUOP BY 字句放在 ORDER BY 字句之后,就会出现语法错误。