5 聚合(集合)函数
函数 | 作用 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值的和 |
5.1 COUNT()函数
(1)COUNT(*),计算表中总的行数,不管某列有数值或者为空值。
(2)COUNT(字段名),计算指定列下总的行数,忽略空值的行。
mysql> select * from stu;
+----+-----------+-------+
| id | name | score |
+----+-----------+-------+
| 1 | jtzen9 | 100 |
| 2 | heiheihei | 60 |
| 3 | John | 70 |
| 4 | Nick | NULL |
| 5 | Mike | 90 |
+----+-----------+-------+
5 rows in set
mysql> select count(*) as cust_num,count(score) as score_num from stu;
+----------+-----------+
| cust_num | score_num |
+----------+-----------+
| 5 | 4 |
+----------+-----------+
1 row in set
(3)COUNT()与GROUP BY一起使用,计算不同分组中的记录总数:
5.2 SUM()函数
(1)SUM(),求和函数,返回指定列值的总和,计算时忽略值为null的行:
mysql> select sum(score) as score_total from stu;
+-------------+
| score_total |
+-------------+
| 320 |
+-------------+
1 row in set
(2)SUN()与GROUP BY一起使用,计算每个分组的总和:
5.3 AVG()函数
(1)AVG(),求指定列数据的平均值,计算时忽略值为null的行:
mysql> select avg(score) as avg_score from stu;
+-----------+
| avg_score |
+-----------+
| 80.0000 |
+-----------+
1 row in set
(2)AVG()和GROUP BY一起使用,计算每个分组的平均值:
5.4 MAX()函数
(1)MAX(),返回指定列种最大值:
mysql> select max(score) as max_score from stu;
+-----------+
| max_score |
+-----------+
| 100 |
+-----------+
1 row in set
(2)与GROUP BY一起使用,返回每个分组中的最大值:
5.5 MIN()函数
(1)MIN(),返回指定列种最小值:
mysql> select min(score) as min_score from stu;
+-----------+
| min_score |
+-----------+
| 60 |
+-----------+
1 row in set
(2)与GROUP BY一起使用,返回每个分组中的最小值:
6 加密函数
加密函数主要用来对数据进行加密和界面处理,以保证某些重要数据不被别人获取。这些函数在保证数据库安全时非常有用。
6.1 加密函数PASSWORD(str)
(1)PASSWORD(str),从原明文密码str计算并返回加密后的密码字符串,当参数为NULL时,返回NULL。
mysql> select password('newpwd');
+-------------------------------------------+
| password('newpwd') |
+-------------------------------------------+
| *1FA85AA204CC12B39B20E8F1E839D11B3F9E6AA4 |
+-------------------------------------------+
1 row in set
(2)修改MySQL当前用户密码为jtzen9
mysql> set password=password('jtzen9');
6.2 加密函数MD5(str)
MD5(str),为字符串算出一个MD5 128比特校验和。该值以32位十六进制数字的二进制字符串形式返回,若参数为NULL,则返回NULL。
如果MySQL当中的信息是为了以后web页面做准备,那我们尽量使用MD5().
mysql> select MD5('newpwd');
+----------------------------------+
| MD5('newpwd') |
+----------------------------------+
| a5e3094ce553e08de5ba237525b106d5 |
+----------------------------------+
1 row in set
6.3 加密函数ENCODE(str,pswd_str)
ENCODE(str,pswd_str),使用pswd_str作为加密,加密str。使用DECODE()解密结果,结果是一个和str长度相同的二进制字符串。
mysql> select encode('secret','cry'),length(encode('secret','cry'));
+------------------------+--------------------------------+
| encode('secret','cry') | length(encode('secret','cry')) |
+------------------------+--------------------------------+
| �h��� | 6 |
+------------------------+--------------------------------+
1 row in set
6.4 解密函数DECODE(crypt_str,pswd_str)
DECODE(crypt_str,pswd_str),使用pswd_str作为密码,解密加密字符串crypt_str,crypt_str是由ENCODE()返回的字符串。
mysql> select decode(encode('secret','cry'),'cry');
+--------------------------------------+
| decode(encode('secret','cry'),'cry') |
+--------------------------------------+
| secret |
+--------------------------------------+
1 row in set
7 其他函数
用到的时候,再记录笔记。
(1)格式化函数FORMAT(x,n)
(2)不同进制的数字进行转换
(3)IP地址与数字互相转换
(4)加锁函数和解锁函数
(5)重复执行指定操作
(6)改变字符集
(7)改变数据类型函数