MySQL函数

本文详细介绍了MySQL中的常用函数,包括数学、字符串、时间和日期函数的使用,以及聚合函数如COUNT、SUM、AVG、MAX和MIN的应用。此外,还探讨了数据库级别的MD5加密,如何对用户密码进行加密存储和验证。
摘要由CSDN通过智能技术生成


5、MySQL函数

官网:

MySQL :: MySQL 5.7 Reference Manual :: 12.1 Built-In Function and Operator Reference

5.1、常用函数

-- 数学运算
SELECT ABS(-1) -- 绝对值
SELECT CEILING(9.4) -- 向上取整
SELECT FLOOR(9.4) -- 向下取整
SELECT RAND() -- 返回一个 0~1 之间的随机数
SELECT SIGN(10) -- 判断一个数的符号 0-0 负数返回-1,整数返回1

-- 字符串函数
SELECT CHAR_LENGTH('即使再小的帆也能远航') -- 字符串长度
SELECT CONCAT('我','爱','你们') -- 拼接字符串
SELECT INSERT('我爱编程hellworld',1,2,'超级热爱') -- 查询,从某个位置开始替换某个长度——超级热爱编程hellworld
SELECT LOWER('Soledad-X') -- 小写字母
SELECT UPPER('Soledad-X') -- 大写字母
SELECT INSTR('Soledad-X','l') -- 返回第一此出现的子串的索引
SELECT REPLACE('憨憨说坚持就能成功','坚持','努力') -- 替换出现的指定字符串
SELECT SUBSTR('憨憨说坚持就能成功',4,6) -- 返回指定的子字符串(源字符串,截取的位置,截取的长度)
SELECT REVERSE('清晨我上马') -- 反转

-- 查询 姓周的同学,显示为姓邹
SELECT REPLACE(`name`,'周','邹')
FROM `student`
WHERE `name` LIKE '周%';

-- 时间和日期函数(记住)
SELECT CURRENT_DATE() -- 获取当前日期
SELECT CURDATE() -- 获取当前日期
SELECT NOW() -- 获取当前日期
SELECT LOCALTIME() -- 本地时间
SELECT SYSDATE() -- 系统时间

SELECT YEAR(NOW())
SELECT MONTH(NOW())
SELECT DAY(NOW())
SELECT HOUR(NOW())
SELECT MINUTE(NOW())
SELECT SECOND(NOW())

-- 系统
SELECT SYSTEM-USER()
SELECT USER()
SELECT VERSION()

5.2、聚合函数(常用)

函数名称描述
COUNT()计数
SUM()求和
AVG()平均值
MAX()最大值
MIN()最小值
。。。。。。
SELECT COUNT(`BornDate`) FROM student; -- count(字段),会忽略所有的null值
SELECT COUNT(*) FROM student; -- 不会忽略null值,本质:计算行数
SELECT COUNT(1) FROM student; -- 不会忽略null值,本质:计算行数

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破解网站的原理,背后有一个字典,MD5加密后的值,加密的前值

CREATE TABLE `testmd5` (
	`id` int 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,'张三','123456'),(2,'李四','123456'),(3,'王五','123456');

-- 加密
UPDATE testmd5 SET pwd=MD5(pwd) WHERE id = 1
 
UPDATE testmd5 SET pwd=MD5(pwd) -- 加密全部密码

-- 插入的时候加密
INSERT INTO testmd5 VALUES(4,'小明',MD5('123456'))
 
-- 如何校验:将用户传递进来的密码,进行md5加密,然后对比加密后的值
SELECT * FROM testmd5 WHERE `name` = '小明' AND pwd = MD5('123456')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Varixer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值