数据中函数使用隐藏了实现细节,提高了代码的重用性。在MySQL中函数可以大致分为两类,单行函数和分组函数。因此,我们今天的学习就从这两类函数入手咯。一般语法:

select 函数名(实参列表)from 表名

(温馨提示哦:在本次学习中一定要记好一个单词就是select)

分组函数:

MySQL 创建function 参数sTRING_流程控制


一、字符函数

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之后会写到)