5、MySQL函数
mysql手册:https://dev.mysql.com/doc/refman/8.0/en/func-op-summary-ref.html
5.1、常用函数
-- ==============常用函数==============
select abs(-8)
select ceiling(9.4) -- 向上取整
select floor(9.4) -- 向下取整
select rand() -- 返回一个0~1之间的随机数
select sign() -- 判断一个数的符号 0-0 负数返回-1 正数返回 1
-- 字符串函数
select char_length('即使再小的帆也能远航') -- 字符串长度
select concat('我','爱','你们') -- 拼接字符串
select insert() -- 查询,从某个位置开始替换某个长度
select lower('Kuangshen') -- 小写字母
select upper('kuangShen') -- 大写字母
select instr('kuangshen','h') -- 返回第一次出现的子串的索引
select replace('坚持就能成功','坚持','努力') -- 替换出现指定的字符
select sustr('坚持就能成功',4,3) -- 返回指定的子字符串(源字符串,截取的位置,截取的长度)
select REVERSE('坚持就能成功') -- 反转字符串中的字符
-- 时间和日期函数(记住)
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() | 最小值 |
… |
count(指定列) -- 会忽略所有的null值
count(*) -- 不会忽略null值,本质 计算行数
count(1) -- 不会忽略null值,本质 计算行数
select sum(`指定列`) as 总和 from 表;
select avg(`指定列`) as 总和 from 表;
select max(`指定列`) as 总和 from 表;
select min(`指定列`) as 总和 from 表;
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','123465')
-- 加密
UPDATE testmd5 SET pwd=MD5(pwd)
-- 插入的时候加密
insert into testmd5 VALUES(4,'xiaoming',MD5('123456'))
-- 如何校验:将用户传递进来的密码,进行md5加密,然后比对加密后的值
SELECT * from testmd5 where `name`='xiaoming' and pwd=MD5('123456')