mysql函数语法

ads

 

写在前面,最近三个月,貌似都没有更新,是因为个人原因(工作+生活)所导致的,后面会努力来更新的哈,争取不中断这么久,保障每周最少更新3篇。

希望继续关注我哦。

有些时候,我们进行数据的查询,并不需要返回实际的数据,只是说要对数据进行一个总结,可以对获取的数据进行分析和报告。

包括如下函数:

函数 作用
COUNT() 返回某列的行数
SUM() 返回某列值的和
AVG() 返回某列的平均值
MAX() 返回某列的最大值
MIN() 返回某列的最小值

count()函数

count()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。有以下两种使用方法:

  1. count(*)计算表中总的行数,不管某列是否有数值或者为空值。
  2. count(字段名)计算指定列下总的行数,计算时将忽略空值的行。

我们首先看下这个名为test的数据表中的数据;

mysql> select * from test;
+----+-----------+------+----------+------+
| id | name | age | area | like |
+----+-----------+------+----------+------+
| 1 | zhangsan | 20 | shanxi | eat |
| 4 | zhangsan1 | 20 | shanxi | eat |
| 5 | lisi | 22 | beijing | 123 |
| 6 | wangwu | 24 | shandong | 222 |
| 7 | NULL | 24 | shandong | 222 |
+----+-----------+------+----------+------+
5 rows in set (0.00 sec)

mysql>

下面我们来查询这个数据表中行数;

mysql> select count(*) from test;
+----------+
| count(*) |
+----------+
| 5 |
+----------+
1 row in set (0.00 sec)

mysql>

由上面的查询结果可以看出来,count(*)返回test表中记录的总行数。

那么我们接下来只查询name字段的行数,看下返回的内容是什么;

mysql> select count(name) from test;
+-------------+
| count(name) |
+-------------+
| 4 |
+-------------+
1 row in set (0.00 sec)

mysql>

可以看到两个值不同,为什么呢?

我们可以看到确实是有5条数据,但是name字段中第五行是一个null,也就是空值,所以我们使用count(name)的时候,忽略了空值,也就是4条了。

SUM()函数

SUM()是一个求总和的函数,可以返回指定列值的总和。

例如,我们查询下名为test的数据表中的age字段的总和,sql如下:

mysql> select sum(age) from test;
+----------+
| sum(age) |
+----------+
| 110 |
+----------+
1 row in set (0.00 sec)

mysql>

可以看到,查询的结果是将每一行的指定列的值,进行了一个相加,统计出来的值。

可能有些人就比较好奇了,sum()函数是否可以统计非数字的值,那么我们可以来尝试下:

mysql> select sum(name) from test;
+-----------+
| sum(name) |
+-----------+
| 0 |
+-----------+
1 row in set, 3 warnings (0.00 sec)

mysql>

可以看到虽然没有报错,但实际上他输出的信息是0,也就是没有计算出来任何信息,所以sum()函数不可以进行非数字的计算。

AVG()函数

avg其实就是average,也就是平均值,通过计算返回的行数和每一行数据的和,求得指定列数据的平均值;

例如我们可以查询下age字段的平均值是多少:

mysql> select avg(age) from test;
+----------+
| avg(age) |
+----------+
| 22.0000 |
+----------+
1 row in set (0.00 sec)

mysql>

avg()函数使用的时候,参数为要计算的列名称,如果要得到多个列的多个平均值,则需要在每一列上都使用avg()函数。

MAX()函数

MAX()返回指定列中的最大值;

例如我们可以查询下age字段中最大的值是多少;

mysql> select max(age) from test;
+----------+
| max(age) |
+----------+
| 24 |
+----------+
1 row in set (0.00 sec)

mysql>

可以看到经过我们的查询,最大值是24

那么这个函数是否可以计算字符呢?我们可以尝试下:

mysql> select max(name) from test;
+-----------+
| max(name) |
+-----------+
| zhangsan1 |
+-----------+
1 row in set (0.00 sec)

mysql>

从结果来看,是可以的,他的第一优先级是字段长度来计算的,而后根据ascll码的大小值进行比较,aascll码最大,zascll码最小,依次比较,计算大小。

MIN()函数

MIN()函数可以返回查询列中的最小值;

例如我们可以使用此函数来查询age列中最小的值,如下:

mysql> select min(age) from test;
+----------+
| min(age) |
+----------+
| 20 |
+----------+
1 row in set (0.00 sec)

mysql>

min()函数和max()函数正好相反,一个计算最大值,一个计算最小值,他们两个函数都可以支持数字类型和字符类型的计算。

至此,本文结束。

长按以识别二维码关注运维家~
微信号:yunweijia0909


往期推荐

mysql查询语法汇总-中

mysql查询语法汇总-上

记一次mysql查询慢的优化历程



最后编辑于:2024/1/17 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com