1.函数
1.数值函数《9个》:
- abs()
- ceil(向上取整)、floor(向下取整)
- mod(被除数,除数) //mod(2,5)发挥被除数2
- pow(幂)
- rand(0-1的随机数,包含0但不包含1) //select floor(rand()*最大值+1-最小值)+最小值 ,包含m到n的随机整数
- round(x)、round(x,d) //返回参数X的四舍五入的有d 位小数
- sqrt(算数平方根)
- truncate(x,d) //对x进行截取到d个小数位
2.字符函数《18个》:
- length、char_length //前面是字节数、后面是字符数
- concat、concat_ws('分隔符',str1,str2...);
- left/right(str,x) //返回左or右边x个字符 ; substr(str,x,y) //在第x的位置上向后截取y个,不写y即截取到最后; instr(str,x) //返回x在str中首次出现的位置
- lower、upper(转换大小写)
- insert(str1,x,y,str2) //用str2替换掉str1从x位置往后y个数 ; replace(str,a,b) //用b替换掉str里所有的a
- trim(子串 from str) =trim (both、leading、trailing 子串 from str) //将str两端、左侧、右侧删掉子串 ; ltrim、rtrim(字符串) //去掉左侧、右侧空格
- strcmp(s1,s2) //s1和s2的ASII值的大小关系比较
- lpad、rpad(str1,n,str2) //从str1的左边、右边填充n个str
3.日期和时间函数《17个》:
- curdate(获取日期)、curtime(获取时间)、now(获取日期和时间)
- unixtimestamp(写日期换算成秒值)、from_unixtime(写秒值换算成日期) //距1970-1-1
- year、month、week、day、hour、minute、second(获取日期中的年、月、周...) monthname(以英文单词的形式返回月份名称)
- date_format(日期时间,'格式') // dateformat(now(),'%Y-%M-%D %H:%I:%S') 、 date_add(date,interval expr type ) // dateadd(now(),interval 3 month) //向日期添加指定的时间间隔、datediff(日期1,日期2) //返回两个日期之间的时间j间隔 、period_add(p,n) //对日期P加或减N个月份
3.信息函数《3个》:
- version(获取数据库的版本)
- database/schema(获取当前的数据库名称)
- user(获取当前用户)
4.高级函数《5个》
- if(表达式1,表达式2,表达式3) //如果表达式1成立,返回表达式2,否则返回表达式3
- ifnull(表达式1,表达式2) // 判断为空,表达式1为空结果为表达式2,不为空返回表达式1
- nullif(表达式1,表达式2) // 判断相等,表达式1和2相等结果为null,否则为表达式1
- isnull(表达式) //表达式为空,返回1,不为空返回0
- case when 条件1 then 值1
when 条件2 then 值2
when 条件3 then 值3
else 值4
end from 表名;
//case的重要用法,行转列,原始表格如下:
通过,select date1,
max(case when name='小说' then scount else 0 end) 小说,
max(case when name='微信' then scount else 0 end) 微信 from 行转列 group by date1;
展示出的图: