分类:单行和分组函数
单行函数:
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 ✖