MySQL学习笔记常用单行和分组函数
Posted !0 !
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL学习笔记常用单行和分组函数相关的知识,希望对你有一定的参考价值。
一、单行函数
- 字符函数
- concat:拼接字符串
select concat(str1,str2,…);
- substr(substring):截取子串
select substr(str, pos); //截取从pos开始的所有字符,MySQL中下标从1开始;注意如果pos为负数,则是截取最右边的pos个数
select substr(str, pos, len) //截取从pos开始len个字符长度
- upper:变大写
select upper(str);
- lower:变小写
select lower(str);
- replace:替换
select REPLACE(str,from_str,to_str);//将str中from_str字符串全部替换成to_str字符串
- length:获取字节长度(一个字母占一个字节,一个汉字占三个字节)
select length(str);
- trim:去前后空格
select trim(str);
select trim(remstr FROM str) //移除str
前后的remstr
字符串
- lpad:左填充
select LPAD(str,len,padstr);//用padstr填充len个长度到str的左边
注意:如果len长度小于str的长度那么会截取从右往左的len个长度
- rpad:右填充
select RPAD(str,len,padstr);//用padstr填充len个长度到str的右边
注意:如果len长度小于str的长度那么会截取从左往右的len个长度
- instr:获取子串第一次出现的索引
select instr(str,substr); //str为母串,substr为子串
2.数学函数
- ceil:向上取整
select CEIL(X);
- floor:向下取整
select FLOOR(X);
- round:四舍五入
SELECT ROUND(X);
SELECT ROUND(X,D);//对X四舍五入,并且保留小数点后D位有效数字
- mod:取模
SELECT MOD(N,M);//N对M取余
- truncate:截断
select TRUNCATE(X,D);//保留小数点后D位
- rand:获取随机数,返回0-1之间的小数
select RAND();
- 日期函数
-
now:返回当前日期+时间
-
year:返回年
-
month:返回月
-
day:返回日
-
date_format:将日期转换成字符
-
curdate:返回当前日期
-
str_to_date:将字符转换成日期
-
curtime:返回当前时间
-
hour:小时
-
minute:分钟
-
second:秒
-
datediff:返回两个日期相差的天数
-
monthname:以英文形式返回月
序号 格式符 功能 1 %Y 4位的年份 2 %y 2位的年份 3 %m 月份(01,02…12) 4 %c 月份(1,2…12) 5 %d 日(01,02…) 6 %H 小时(24小时) 7 %h 小时(12小时) 8 %i 分钟(00,01…) 9 %s 秒(00,01…)
二、分组函数
- 分类
- max 最大值
- min 最小值
- sum 和
- avg 平均值
- count 计算个数
- 特点
-
语法
select max(字段) from 表名; -
支持的类型
sum和avg一般用于处理数值型
max、min、count可以处理任何数据类型 -
以上分组函数都忽略null
-
都可以搭配distinct使用,实现去重的统计
select sum(distinct 字段) from 表; -
count函数
count(字段):统计该字段非空值的个数
count(*):统计结果集的行数
count(1):统计结果集的行数
效率上:
MyISAM存储引擎,count(*)最高
InnoDB存储引擎,count(*)和count(1)效率>count(字段) -
和分组函数一同查询的字段,要求是group by后出现的字段
以上是关于MySQL学习笔记常用单行和分组函数的主要内容,如果未能解决你的问题,请参考以下文章
MySQL笔记--- 部分 DQL 语句;条件查询;排序;分组函数;单行处理函数;group by ,having ;