MySql 函数 (5)

官网:https://dev.mysql.com/doc/refman/5.7/en/sql-function-reference.html

5.1 常用函数

-- =============================常用函数===========================
-- 数学函数
select ABS(-8);  -- 绝对值 8
select CEILING(9.4); -- 向上取整 10
select FLOOR(9,4);  -- 向下取整 9
select RAND(); -- 0-1的一个随机数
select SIGN(10); -- 判断一个数的符号, 0-0, 负数- -1, 正数 - 1

-- 字符串函数
select CHAR_LENGTH('今天是七夕节')  -- 查看字符长度 6
select CONCAT('我','爱','cl'); -- 拼接字符串   我爱cl
select INSERT('我爱曹某人',1,2,'超级热爱');  -- 插入,替换 在起始位置 1,替换字符长度2 超级热爱曹某人
select LOWER('Yuan')  -- 转小写 yuan
select UPPER('Yuan')  -- 转大写 YUAN
select INSTR('Yuan','a') -- 返回第一次出现的字串的索引 3
select REPLACE('坚持就能成功','坚持','努力') -- 替换出出现的指定字符串 努力就会成功
select SUBSTR('坚持就能成功',4,6) -- 截取第四个字符开始的6个长度 成功
select REVERSE('坚持就能成功') -- 反转 功成能就持坚

-- 查询行张的同学改为姓王
select REPLACE(studentName,'张','王') from student where studentName like '张%';

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

select YEAR(NOW());
select MONTH(NOW());
select DAY(NOW());
select HUOR(NOW());
select MINUTE(NOW());
select SECOND(NOW());

-- 系统
select SYSTEM_USER(); -- 当前用户
select USER(); -- 当前用户
select VERSION(); -- 系统版本

5.2 聚合函数

函数名称描述
COUNT() 记数
SUM() 求和
MAX() 最大值
MIN() 最小值
AVG() 平均值
... ...
-- ==========================聚合函数=========================
-- 都能够统计,表中的数据
select COUNT(`studentName`) from student; -- count(字段) 会忽略所有null 值
select COUNT(*) from student;  -- count(*) 不会忽略null值 本质=计算函数
select COUNT(1) from student;  -- count(1) 不会忽略null值 本质=计算函数

select SUM(`studentResult`) AS 总和 from student;
select AVG(`studentResult`) AS 平均分 from student;
select MAX(`studentResult`) AS 最高分 from student;
select MIN(`studentResult`) AS 最低分 from student;

5.3 数据库级别的MD5加密(拓展)

什么是MD5?

主要增强算法复杂度和不可逆。

MD5不可逆,具体的值的md5是一样的

MD5破解网站的原理,背后有一个字典,md5加密后的值,加密前的值

-- =====================测试MD5 加密====================
create table `testmd5`(
`id` int(11) not null auto_increment commit '学号',
`name` varchar(255) not null commit '名字',
`pwd` varchar(255) not null commit '密码',
primary key (`id`)
)ENGING=INNODB DEFAULT CHARSET=utf8;

-- 明文密码
insert into testmd5 values (1,'zhang','123'),(2,'wang','456');

-- 加密
update testmd5 set pwd = MD5(pwd) where id = 1;
update testmd5 set pwd = MD5(pwd); -- 加密所有

-- 插入的时候加密
insert into testmd5 values (3,'zhang',MD5('123'));

-- 如何校验 将用户传递进来的密码,进行MD5 加密,然后对比加密后的值
select * from testmd5 where name = 'zhang' and pwd = MD5('123');

 

原文地址:https://www.cnblogs.com/yhc-love-cl/p/13561393.html