存储在表中的数据都不是应用程序所须要的。咱们须要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,而后再在客户机应用程序或报告程序中从新格式化。算法
简单来讲,就是直接从数据库中检索出几个字段来转成咱们须要的结果,而不是咱们检索出来到客户端再去转换。数据库
Concat函数:函数
将结果拼接起来。好比咱们有一个字段name和字段price,须要显示成:name(price)的结果。3d
select Concat(name,'(',price,')') from tb2;
结果为:code
上述Concat函数中,从图片中能够看到检索出来的字段名字是一个Concat的语句名,而一般咱们不但愿这么显示,用别名能够解决这个问题:blog
select Concat(name,'(',price,')') as newName from tb2;
MySQL支持加减乘除运算符。图片
select id,price,id*price as total from tb2 ;
其中total字段是id*price的结果。字符串
这张图里面的函数首字母都不用大写,遵循以前的规则,所有大写或者所有小写便可。原型
原型:left(str,len); 即从str字符串左侧开始截取len长度的字符。数学
select left(name,2) as len from tb2;
此语句截取name左侧开始len长度字符串。
right函数同理,只是从右侧开始而已。
转换成大小写:
select name,upper(name) as upper,lower(name) as lower from tb2;
结果:
原型为:length(str);计算字符串长度。
select name, length(name) from tb2;
原型为:locate(substr,str,pos);检索子串substr出现的位置。
当不使用pos时,可看作默认pos=1,即从字符串的第一个字符开始检索。
好比从第二个字符开始检索字符'h'出现的位置:
select name ,locate('h',name,2) as locate from tb2;
分析结果,好比第一条记录,第二个字符开始检索,'h'出现的位置为3。
原型为:substr(str,pos),截取str从pos位置开始的字符串。
好比截取第三个位置开始的字符串:
select name,substr(name,3) as substr from tb2;
SOUNDEX 是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了相似的发音字符和音节,使得能对串进行发音比较而不是字母比较。
例子:
假如咱们要检索一个2005-09-01日期的订单,那么咱们若是直接使用where语句可能不能达到咱们指望的效果:
select order_name from tb where order_date='2005-09-01';
由于咱们存储的时候,日期格式可能并非这么存的。因此咱们要使用日期时间处理函数。
好比这个日期,咱们可使用上表中的date()函数:
select order_name from tb where date(order_date)='2005-09-01';
上述函数大可能是经过一个时间,来返回其中的日期、时间等部分。而Now函数是返回当前的日期和时间。
大可能是数学上的处理函数: