Mysql基础:常用的子函数,常用的聚合函数,MD5加密
-- ===========常用函数(了解即可)============== -- 数学运算 select ABS(-8)-- 绝对值 select CEILING(9.4)-- 向上取整 select FLOOR(9.4)-- 向下取整 SELECT RAND()-- 返回一个0~1之间的随机数 SELECT SIGN(10)-- 判断一个数的符号,负数返回-1,正数返回1 -- 字符串函数 SELECT CHAR_LENGTH('即使再小的帆也能远航')-- 字符串长度 SELECT CONCAT('biu','biu','biu')-- 拼接字符串 SELECT INSERT('我爱编程helloworld',1,2,'超级热爱编程')-- 查询,从某个位置替换某个长度 SELECT LOWER('KING')-- 大写转小写 SELECT UPPER('king')-- 小写转大写 SELECT REPLACE('坚持就能成功','坚持','持续学习')-- 替换 SELECT SUBSTR( '坚持就能成功',4,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 HOUR(NOW()) SELECT MINUTE(NOW()) SELECT SECOND(NOW()) -- 系统 SELECT SYSTEM_USER() SELECT USER() SELECT VERSION()
常用的聚合函数
函数名称 | 描述 |
count() | 计数 |
sum() | 求和 |
avg() | 求平均值 |
max() | 最大值 |
min() | 最小值 |
-- =========聚合函数========== 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 result SELECT avg(studentresult) AS 平均分 FROM result SELECT min(studentresult) AS 最低分 FROM result -- 查询不同课程的平均分,最高分,最低分,平均分要大于80 -- 核心:(根据不同的课程分组) SELECT subjectname,AVG(studentresult)AS 平均分,max(studentresult),min(studentresult) FROM result r INNER JOIN `subject` sub ON r.subjectno=sub.subjectno GROUP BY r.subjectno -- 通过字段来分组‘ HAVING 平均分>80
拓展,数据库级别的MD5加密
1.什么是MD5
一个信息摘要算法(第五代)
2.特点
主要增强算法复杂性和不可逆性
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,'赵四','12345'),(2,'老刘','12345'),(3,'大脚','12345') -- 加密 UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1 -- 插入时加密 INSERT into testmd5 VALUES(4,'永强',MD5('12343')) -- 校验,将用户传递进来的密码,进行MD5加密,然后对比加密后的值 SELECT * FROM testmd5 WHERE `name`='赵四' AND pwd=MD5('12345') SELECT *FROM testmd5