数值运算符
CEIL() 进一取整/向上取整
SELECT CEIL(3.14); (结果:4)
DIV() 整数除法
SELECT 3 DIV 5; (结果:0)
FLOOR() 舍一取整
SELECT FLOOR(3.74); (结果:3)
MOD 取余数(取模,和写成%等价)
SELECT 5 MOD 3; 或者 SELECT 5%3; (结果:2)
POWER() 幂运算
SELECT POWER(3,4); (结果:81)
ROUND() 四舍五入
SELECT ROUND (3.142,0);(结果:3)
TRUNCATE() 数字截取
SELECT TRUNCATE(111.233,0);(结果:111)
SELECT TRUNCATE(111.233,-1);(结果:110)
比较运算符
日期时间函数
NOW() 当前时间 含日期时间
CURDATE() 当前日期 只有日期
CURTIME() 当前时间 值有时间
DATE_ADD() 时间增加或减少
在原有给定的时间上增加365天
SELECT DATE_ADD(‘2017-11-24’,INTERVAL 365 DAY);
结果:2015-11-24
INTERVAL 365 DAY:表示加365天
INTERVAL 一个量,表示变化,增加可以增加负值 单位 YEAR ,MONTH,WEEK,DAY
SELECT DATEDIFF(‘2017-11-24’,’2018-11-24’);
结果: -365 时间差值计算 单位为日 前面时间减去后面时间
SELECT DATE_FORMAT(‘2017-11-24’,’%m/%d/%Y’);
结果: 11/24/2017 日期格式转换
- 信息函数
- 聚合函数
EG:
AVG() - 平均值
对sno进行分组查平均分保留2位小数
COUNT() - 计数
MAX() - 最大值
MIN() - 最小值
SUM() - 求和
查询sno中的最大平均值
(分析:我现在的思路即是让查出来的集降序然后只保留第一行,mysql不支持top,可以用limit。 如果你们谁有更好的方法欢迎指导。)
注:GROUP BY 和HAVING
- GROUP BY 是分组查询, 一般 GROUP BY 都是和聚合函数配合使用的,而且GROUP BY 有一个原则,就是 SELECT 后面的所有列中,没有使用聚合函数的列,必须出现在 GROUP BY 后面(重要)
- WHERE作用是在对查询结果进行分组前,将不符合WHERE条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,当有聚合条件时就要用HAVING而不能用WHERE,另外HAVING必须和GROUP BY联用,没有GROUP BY就不能用HAVING。
HAVING作用是筛选满足条件之后的组,即在分组之后再进行数据过滤,条件中经常包含聚组函数,使用HVING 条件显示特定的组,也可以使用多个分组标准进行分组
- 加密函数
MD5() 会变成一个32位的数字
比如:
而PASSWORD()通常是进行密码的计算,修改。