MySQL学习第五篇:常用函数、聚合函数、数据库级别的MD5加密
程序员文章站
2022-06-01 08:50:29
...
mysql函数
1. 常用函数
- 数字
-- 绝对值 select abs(-9.2) -- 向上取整 select ceiling(10/2.6) -- 向下取整 select floor(10/2.6) -- 返回随机数,0-1之间 select rand() -- 判断一个数据的符号, 结果有0,-1,1 -- 就是除了0之外符号是0,其余的数根据正负返回 1或 -1 select sign(0) -- 0
- 字符串
-- 字符串函数 -- 字符串长度,不论是字符还是中文字,计数方式一样 select char_length('ssdsdsd') -- 7 select char_length('打道回府鬼画符嗷嗷') -- 9 -- 拼接字符串 select concat('dds','ds','各个') -- ddsds各个 -- 替换,从某个位置开始替换某个长度 select insert('大中国', 1, 2, 'womende') -- womende国 -- 转大小写字母,若是中文,则没有效果,还是原来的中文 select upper('sd') -- SD SELECT lower('DSDdd') -- dsddd -- 查询第一次字符出现的位置 select instr('sddsds', 'd') -- 2 -- 替换字符串 (字符串,待被替换字符串,替换字符串) select replace('动释放锁大师傅似的', '大师傅', 'sa') -- 动释放锁sa似的 -- 截取字符串,从第几个位置,截取几个字符串(可选,不写,则截取到尾) select substr('动释放锁大师傅似的', 4, 2) -- 锁大 -- 字符串反转 SELECT reverse('dsdsda') -- adsdsd -- 查询姓赵的同学,姓:赵改为早 SELECT replace(studentname, '赵', '早') as 姓名, studentno from student where studentname like '赵%'
-
日期时间
-- 时间和日期函数(重要,记住) -- 获取当前日期 select CURRENT_DATE() -- 2021-02-19 SELECT CURDATE() -- 2021-02-19 -- 获取当前 日期 和 时间 SELECT NOW() -- 2021-02-19 10:55:19 -- 获取本地 日期 和 时间 select LOCALTIME() -- 2021-02-19 10:56:50 -- 获取系统 日期 和 时间 SELECT SYSDATE() -- 2021-02-19 10:56:50 -- 获取年月日时分秒 SELECT YEAR(NOW()) SELECT month(NOW()) SELECT day(NOW()) SELECT hour(NOW()) SELECT minute(NOW()) SELECT second(NOW())
-
用户和版本
-- 获取用户 SELECT USER() -- [email protected] select system_user() -- 获取版本 select version() -- 5.0.96-community-nt
2. 聚合函数
-- 聚合函数
-- 统计表中数据,记录数
select count(studentname) from student; -- count(字段),会忽略该字段数据的null值
select count(*) from student; -- 不会忽略null值,本质计算行数,所有的列走一遍
select count(1) from student; -- 不会忽略null值,本质计算行数,用1代表
-- 综合sum,平均值avg,最高分max,最低分min
select sum(studentresult) from result
select avg(studentresult) from result
select max(studentresult) from result
select min(studentresult) from result
3. 数据库级别的MD5加密(扩展)
-
MD5由MD4、MD3、MD2改进而来,主要增强算法复杂度和不可逆性。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 SELECT * from testmd5 -- 插入数据, 明文密码 insert into testmd5(id,`name`,pwd) values(1, 'zhangsan','123456'), (2, 'lisi','123456'), (3, 'wangwu','123456') -- 使用md5函数进行加密,id为1的 update testmd5 set pwd = md5(pwd) where id=1 -- 加密全部的数据 update testmd5 set pwd = md5(pwd) -- 插入数据的时候加密 insert into testmd5 values(4,'liliu',md5('123456')) -- 如何校验:将用户传进来的密码,进行加密,然后对比加密后的值 select * from testmd5 where `name`='liliu' and pwd=md5('123456')
上一篇: 计算属性
下一篇: MySQL数据库外键使用