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')