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')
本文作者:Li-An
本文链接:https://www.cnblogs.com/Li-An/p/16440584.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步