SELECT {* | <字段列名>} [ FROM <表 1>, <表 2>… [WHERE <表达式> [GROUP BY <group by definition> [HAVING <expression> [{<operator> <expression>}…]] [ORDER BY <order by definition>] [LIMIT[<offset>,] <row count>] ] 其中,各条子句的含义如下:
{*|<字段列名>}包含星号通配符的字段列表,表示所要查询字段的名称。 <表 1>,<表 2>…,表 1 和表 2 表示查询数据的来源,可以是单个或多个。 WHERE <表达式>是可选项,如果选择该项,将限定查询数据必须满足该查询条件。 GROUP BY< 字段 >,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。 [ORDER BY< 字段 >],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC),默认情况下是升序。 [LIMIT[<offset>,]<row count>],该子句告诉 MySQL 每次显示查询出来的数据条数。 COUNT() 函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数
要计算demos表中的所有行,请使用COUNT(*)函数,如下所示:
mysql> SELECT COUNT(*) FROM demos; +----------+ | COUNT(*) | +----------+ | 9 | +----------+ 1 row in set 您可以添加一个WHERE子句来指定一个条件来计数,例如,只计算val列包含值等于2的行,使用以下查询:
mysql> SELECT COUNT(*) FROM demos WHERE val = 2; +----------+ | COUNT(*) | +----------+ | 2 | +----------+ 1 row in set 如果在COUNT函数中指定val列,则COUNT函数计数其val列仅包含非NULL值的所有行。 请参阅以下查询:
SELECT COUNT(*) FROM demos WHERE val = 2; val列中的两个NULL值将被忽略。