首页 > 技术文章 > Mysql基础:常用的子函数,常用的聚合函数,MD5加密

CL-King 2020-09-25 18:28 原文

-- ===========常用函数(了解即可)==============

-- 数学运算
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

 

 

  

 

推荐阅读