常见函数

分类:单行和分组函数

单行函数:

        length()#返回参数的字节数、

concat()#把里面的参数结合起来
    concat(str1,str2...) as xxx来使用

upper()#变大写

lower()#变小写

substr() #截取字符串 substr("aaaaaa",index)截取

1.只有一个数字参数从index后的所有字符

substr("aaaa",1)

2.两个数字参数表示从一个到另一个之间

substr("aaaaaa",1,3)

需要注意的是sql从1开始不是从0 开始

instr(str1,str2)#返回str2在str1中的第一次出现起始索引,如果找不到就返回0.
trim() 去掉前后的字符,但是保留中间的字符
#只有一个字符串返回去除空格后的字节长度。
#规定去掉的值
trim('x' FROM "xxxxx")
lpad(str,num,char)
#用指定的字符进行左填充
#用指定的字符char来填充str,最终的长度为num
rpad()
#用指定的字符右填充
replace()替代
replace("str1","str2","str3")
在str1中用str3替代str2
     IFNULL()函数,只能判断是否为NULL,NULL与任何数拼接都是NULL。
     IFNULL(str1,str2)函数
       如果str1是NULL则返回str2

分组函数:供统计使用,也叫聚函数,组函数

 

数学函数:

    1.round()四舍五入

#如果没有参数,就自动保留整数

#round(num1,num2),num2表示保留的位数

2.ceil() 向上取整,返回≥该参数的最小整数

3.floor() 向下取整,返回≤参数的最小整数
4.truncate() 截断
truncate(num1,num2) num1中小数点后num2的位数就截断。
5.mod(num1,num2)取余=num1%num2
num1%num2= num1-num1/num2*num2

日期函数:

NOW()   返回当前系统的日期+时间
CURTIME() 只有时间不包含日期
也可以指定输出
Select year(now()) as 年
同样 month 如果想用英文也是可以用monthname
day

格式化输出日期也可以
str_to_data:按照指定的字符格式化转化成日期输出
例:
str_to_data('1998-1-1','%Y-%c-%d')


%Y 四位年份
%y 2位
%m 月份要不零的那种
%c 月份不补零
%d 日期
%H 24小时制小时
%h 12小时制
%i 分钟
%s

其他函数:

select version() 查看版本号

流程控制函数:

if

select if(exp1,exp2,exp3) 如果exp1成立返回exp2

 

switch:在mysql中直接用case代替switch 用when代替case

使用一

case    变量名

when   变量1 then

when 变量2 then

else

end 来结束

例:

select st1,str2

case str2

when 30 then str1*20

else str1

end as 新

使用二

case

when 条件1 值1

....

else
end

 

分组函数:

功能,用作统计使用

 

分类:

sum求和,avg平均值,max最大值,min最小值,count计算个数

 

SUM:
select sum(salar) from
avg:
select avg(xxx) from xxx
max:
select max(xxx) from xxx
min:
select min(xxx) from xxx

 

特点 1 sum和avg只能对于数值类型 2 min,max,count可以对于任意数值类型 3 count()直接加参数,是计算参数不是null的个数

4 可以混合distinc来参与例如:

select sum(distinct salary)

5 count函数特点:

select count(*) from xxx

用来看有多少列,一行的所有字段只要有一个不是null就会添加

也可以写成 select count(1) from xxx
#相当于多了一列为1,然后来统计1的个数≈求多少行业就是求表有多少行。

 

6.和分组函数一同查询都字段有限制

select avg(x1),x2 from aaa

和分组函数一同查询都字段要求是group by 后的字段