数据中函数使用隐藏了实现细节,提高了代码的重用性。在MySQL中函数可以大致分为两类,单行函数和分组函数。因此,我们今天的学习就从这两类函数入手咯。一般语法:
select 函数名(实参列表)from 表名
(温馨提示哦:在本次学习中一定要记好一个单词就是select)
分组函数:

一、字符函数
1.length(获取参数值的字符个数)
语法:select length(‘字符’);
2.concat (连接字符)
语法:select concat(字符1,字符2)from 表名
3.lower upper(修改字符大小写)
语法:select upper(‘haha’);
4.substr substring(截取字符,在MySQL中 索引从1开始哦)
语法:
select substr(‘字符1’,2); =>符1
在这个函数里面字符后可以跟两个参数。使用 第一个参数,从指定索引位置截取之后所有字 节;使用第二个参数,从第一个位置索引位置截 取到第二个参数位置字节;
举个例子:
select substr(‘1,2,3,4,5’,2,4);=>2,3,4
5.instr(返回参数起始位置的索引值,没有出 现则返回0.只返回第一次出现该值的索引)
语法:select instr (‘一,二,三,四’,‘三’);=>3
6.trim(删除指定值或空格)
语法:
select trim (‘a’ form 'aa=aa’);=>=
7.lpad(从做往右填充指定长度和符号)
语法:
select ipad ('一二',4,'*');=>**一二
注意哦!!!
如果指定的长度小于本身的长度,则不填充并从右往左截掉一个8.replace作用和lpad相似,但是从右往左进行填充。
二、数学函数
1.round(四舍五入)
语法:
select round(-1.55);=>-2
2.ceil(向上取整,返回>=该输的最小整数)floor(向下取整,返回该数的最大整数)
3.truncate(截断,暴露小数点后几位)
语法:
select truncate (1.699,1);=>1.6
4.mod(取余)
语法:
select mod(10.3);=>1
这个就相当于我们平时的10%3.
三、日期函数;1.now(返回系统当前日期+时间)
语法:
select now();2.curdate(返回当前日期不包括时间), curtime(返回时间不包括日期)。
语法:
select curdate();3.可以获取指定的部分例如:
select year (now());4.str_to_date(将日期格式转化为指定格式的日期)%r 四位数年份;%y两位数年份;%m月份(01,02)%c两位数月份(1,2)
例如:
select str_to_date('2000-12-1','%r-%c-%d');5.date_fromat (将日期转换为字符)
例如:
select date_format(now(),'%Y年%m月%d日');
四、其他函数:其他函数是更为常见的。例如:
select version();查看数据库版本
select database();查看当前所在的库
select user;查看用户等等
五、流程控制函数
流程控制函数就比较像我们平时Java,Python函数中的流程控制,一起看一下:
1.if else
语法:
select if(10>5,‘是’,‘否’);
2.case函数
语法:
case 要判断的字段或者表达式
when 常量1 then 要显示的值1或者语句1;
when 常量2 then 要显示的值2或者语句2;
when 常量3 then 要显示的值3或者语句3;
…
else 要显示的值n或者语句n;
end
举个例子:
select salary ,department_id
case department
when 10 then salary*1.1
when 20 then salary*1.2
else salary
end;
在then后面的,如果是值 则需要不加 ; ,如果是语句需要加上 ;。
六、分组函数
分组函数是一般是用来统计,计算等等的作用,因此大部分可能会感觉很熟悉。
分组函数常见的有:sum avg max min count
上面分别是对应着:求和 平均 最大 最小值 计数
略有不同的是:
sum avg 一般是用来处理数值型数据
max min count 可以用来出来任何类型的数据
所有的分组函数都可以忽略null值,并可以搭配前面的distinct进行去重。
此外 count函数需要特别注意。
count(*)可以用来统计表的行数,
在使用分组函一同查询的字段要求是 group by后的字段。(group by之后会写到)
















