MYSQL学习笔记(五)MYSQL常用函数,聚合函数,MD5加密

1.常用函数:

官方文档:https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html

数学函数,字符串函数,日期和时间函数,系统信息函数等。

# 数学函数 (这里只列出一些常用的)

SELECT ABS(-8);  /*绝对值*/

SELECT CEILING(9.4);  /*向上取整*/

SELECT FLOOR(9.4);  /*向下取整*/

SELECT RAND();  /*随机数,返回一个0-1之间的随机数*/

SELECT SIGN(0); /*符号函数: 负数返回-1,正数返回1,0返回0*/


#字符串函数

SELECT CHAR_LENGTH('狂神说坚持就能成功'); /*返回字符串包含的字符数*/

SELECT CONCAT('我','爱','程序');  /*合并字符串,参数可以有多个*/

SELECT INSERT('我爱编程helloworld',1,2,'超级热爱');  /*替换字符串,从某个位置开始替换某个长度*/

SELECT LOWER('KuangShen'); /*小写*/

SELECT UPPER('KuangShen'); /*大写*/

SELECT LEFT('hello,world',5);  /*从左边截取*/

SELECT RIGHT('hello,world',5);  /*从右边截取*/

SELECT REPLACE('狂神说坚持就能成功','坚持','努力');  /*替换字符串*/

SELECT SUBSTR('狂神说坚持就能成功',4,6); /*截取字符串,开始和长度*/

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 VERSION();  /*版本*/
SELECT USER();  /*用户*/


# 查询姓李的同学,改成历
SELECT REPLACE(studentname,'李','历') AS 新名字
FROM student WHERE studentname LIKE '李%';

2.聚合函数:
在这里插入图片描述

#统计非空的记录
SELECT COUNT(StudentName) FROM student; --查字段会忽略所有null值
SELECT * FROM student;  --不会忽略null,查行数
SELECT 1 FROM student; /*推荐,不会忽略null,查行数*/ 

SELECT AVG(StudentResult) FROM result; #查询平均值 
SELECT MAX(StudentResult) FROM result; #查最大值
SELECT MIN(StudentResult) FROM result; #查最小值
SELECT SUM(StudentResult) AS '总分' FROM result; #计算总分

# 查询不同课程的平均分,最高分,最低分
# 前提:根据不同的课程进行分组
SELECT sb.SubjectName,AVG(r.StudentResult) AS '平均分',MAX(r.StudentResult) AS '最高分',MIN(r.StudentResult) AS '最低分'
FROM result  r
INNER JOIN
`subject` sb
ON 
r.`SubjectNo`=sb.SubjectNo
GROUP BY sb.SubjectNo;
/*
where写在分组的前面
要是要在分组的后面筛选用 Having
*/

3.数据库级别的MD5加密

update test set pwd=MD5(pwd) where id=1 
update test set pwd=MD5(pwd)   --加密全部的密码
insert into test values(4,'xiaoming',MD5('123456')) --插入时加密
--如何检验:将用户传进来的密码,进行MD5加密,然后比对加密后的值
select * from test where name='xiaoming' and pwd =MD5('123456')

猜你喜欢

转载自blog.csdn.net/jingli456/article/details/113541015