您的位置:首页 > 数据库 > MySQL

MySQL知识(七)——聚合函数、加密函数

2016-02-20 14:56 701 查看

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)改变数据类型函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: