MySQL函数
官网:https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html
5.1、常用函数
菜鸟教程:https://www.runoob.com/mysql/mysql-functions.html
5.2、聚合函数(常用)
| 函数名称 | 描述 |
|---|---|
| COUNT() | 计数 |
| SUM() | 求和 |
| AVG() | 平均值 |
| MAX() | 最大值 |
| MIN() | 最小值 |
| ...... | ...... |
-- 查询一个表中有多少个记录,就使用count()
SELECT COUNT(`BornDate`) FROM student; -- count(`字段`)会忽略所有的null值
SELECT COUNT(*) FROM student; -- count(*)不会忽略null值,它的本质是计算行数
SELECT COUNT(1) FROM student; -- count(1)不会忽略null值,它的本质也是计算行数
-- COUNT(*)和COUNT(1)区别:
-- COUNT(*)会把所有的列都走一遍,而COUNT(1)只走一个列。
-- 从执行的效率来说:
-- (1)如果列名为主键,count(列名)效率优于count(1)
-- (2)如果列名不为主键,count(1)效率优于count(列名)
-- (3)如果表中存在主键,count(主键列名)效率最优
-- (4)如果表中只有一列,则count(*)效率最优
-- (5)如果表有多列,且不存在主键,则count(1)效率优于count(*)
SELECT SUM(`studentResult`) AS 总和 FROM result
SELECT AVG(`studentResult`) AS 平均分 FROM result
SELECT MAX(`studentResult`) AS 最高分 FROM result
SELECT MIN(`studentResult`) AS 最低分 FROM result
5.3、数据库级别的MD5加密(扩展)
什么是MD5?
主要增强算法复杂度和不可逆性。
MD5不可逆,具体的值的md5是一样的。
MD5破解网站的原理就是有一本字典,它有加密前和加密后的值,输入加密后的值可以查询返回加密前的值。
CREATE TABLE `testmd5` (
`id` INT(4) NOT NULL,
`name` VARCHAR(20) NOT NULL,
`pwd` VARCHAR(50) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
-- 明文密码
INSERT INTO testmd5 VALUES(1,'zhangsan','123456'),(2,'lisi','123456'),(3,'wangwu','123456')
-- 加密
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1
UPDATE testmd5 SET pwd=MD5(pwd) -- 加密全部的密码
-- 插入的时候加密
INSERT INTO testmd5 VALUES(7,'xiaoxiao',MD5('123456'))
-- 如何校检:将用户传递进来的密码,进行MD5加密,然后比对加密后的值
SELECT * FROM testmd5 WHERE name='xiaoxiao' AND pwd=MD5('123456')

浙公网安备 33010602011771号