5.1 常用函数
-- 数字运算
select abs(-8); -- 绝对值
select Ceiling(9.4) -- 向上取整
select floor(9.4) -- 向下取整
select rand() -- 返回一个0~1之间的随机数
select sign() -- 判断一个数的符号(正:1 负:-1 0:0)
-- 字符串函数
select char_lenght('jsihuhikde') -- 字符串长度
select concat('ss','kd','de') -- 拼接字符串
Select insert('helloworld',1,2,'替换') -- 替换字符串(从某个位置开始替换某个长度)
select upper('dhelmlek') -- 转大写
select lower('SWHDIEOKL') -- 转小写
select instr('Dddef','d') -- 返回第一次出现字串的索引
select replace('坚持就能成功','坚持','努力') -- 替换出现的指定字符串
select substr('坚持就能成功,坚持就能成功',4,6) -- 返回指定的子字符串(源字符串,截取的位置,截取的长度(省略的话截取到最后一位))
select reverse('坚持就能成功') -- 反转
-- 时间和日期函数 (记住)
select current_date() -- 获取当前日期
select curdate() -- 获取当前的时间
select now() -- 获取当前的时间
select locatime() -- 本地时间
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; -- count(*),不会忽略null值, 本质 计算行数
select count(1) from result; -- count(1),不会忽略null值,本质 计算行数
-- 不同课程的平均分、最高分、最低分
-- 核心
5.3 数据库级别的MD5加密(扩展)
什么是MD5?
主要增强算法复杂度和不可逆性.
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=uft8
-- 明文密码
insert into testmd5 values(1,'zhangsan','123456'),(2,'zhangsan','123456'),(3,'zhangsan','123456');
-- 加密
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');
【参考b站 狂神说java 视频所作笔记】