MySQL函数

#数学函数
SELECT ABS(-8);  #绝对值
SELECT CEILING(9.8);  #大于等于我的最小的整数
SELECT FLOOR(9.8);  #小于等于我的最小的整数
SELECT RAND();     #返回0-1之间的随机数
SELECT RAND(10);   #以某个数作为种子,返回重复随机数
SELECT SIGN(-100);  #符号函数,正数返回1,负数返回-1,0返回0




#字符串函数
SELECT CHAR_LENGTH('好好学习');  #返回字符串中包含的字符数/字符串长度
SELECT CONCAT('我','爱','你');    #合并字符串
SELECT INSERT('我爱你中国',1,3,'最爱');     #替换字符串,从某个位置开始,替换某个长度  如果起始位置超过字符串长度,则返回原字符串
SELECT LOWER('I LOVE YOU ');    #变小写
SELECT UPPER('i  love you');    #变大写
SELECT LEFT('中国欢迎你',2);    #从左边截取2个
SELECT RIGHT('中国欢迎你',3);   #从右边截取3个
SELECT REPLACE('中国欢迎你','你','你们');   #替换
SELECT SUBSTR('中国欢迎你',1,3);   #截取,从哪个位置开始,截取多长
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(`name`,'李','历') AS 新名字 FROM mx
WHERE `name` LIKE '李%';


#聚合函数
#COUNT()  返回满足SELECT条件的记录总和数
#SUM()   返回数字字段或表达式列作统计,返回一列的总和
#AVG()   通常为数值字段或表达式列作统计,返回一列的平均值
#MAX()   可以为数值字段、字符字段或表达式列作统计,返回最大的值
#MIN()   可以为数值字段、字符字段或表达式列作统计,返回最小的值


#聚合函数
SELECT COUNT(`name`) FROM mx;    #查询的为非空的记数
SELECT COUNT() FROM mx;


SELECT  SUM(num) AS 总和  FROM mx;
SELECT  AVG(num)  AS 平均分  FROM mx;
SELECT MAX(num)  AS   最高分 FROM mx;
SELECT MIN(num)  AS  最低分  FROM mx;


#查询不同课程的平均分、最高分、最低分  前提:根据不同课程进行分组
SELECT id,AVG(num),MAX(num),MIN(num)
FROM mx
GROUP BY id;    #根据什么分组


SELECT subjectname,AVG(StudentResult),MAX(StudentResult),MIN(StudentResult)
FROM result AS r  INNER JOIN `subject` AS sub
ON r.`StudentNo`=sub.`SubjectNo` 
GROUP BY r.`SubjectNo`;
HAVING AVG>80
ORDER BY AVG  DESC`sorce`
LIMIT 0,4;
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页