基本格式数据处理转换
1、时间格式化
date_format(date,’format’)
这里可以参考w3cSchool 的格式,方便进行快速转换!
这里也把图贴出来,方便直接预览:
可以直接根据需求对时间进行快速转换,如:select concat(date_format(create_time,'%H'),' 时') as hours from table
2、获取今天发生的订单?select * from order where create_time > CURRENT_DATE()
某些同学可能认为这样不行,但是这种语法是正确的哦,CURRENT_DATE()取时间是当前日期格式,如: YYYY-MM-DD
3、concat 拼接函数的使用
某些时候,我们在业务上可能需要查出来 xxxx,但是因为需求,我们要加上 xxxx元,这个时候就可以采用concat了select concat(money,'元') as money from table
当然,这样的格式也是可以的。select concat(money,'元','分') as money from table
4、group by ! 可能这个语句在 crud 当中用的非常少,在以前,如果我要把大量数据分组,可能我会采用查询出来然后for遍历放入map统计,但是这样效率堪忧,所以我们可以使用 group by 来获取统计后的效果select sum(0) as counts,a from table group by a order by counts desc
这里,要注意,我们统计了a出现的次数,并且以counts进行倒叙排序
5、having 作为不常用语法,但是又经常用的,直接举例子SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log INNER JOIN Websites ON access_log.site_id=Websites.id) GROUP BY Websites.name HAVING SUM(access_log.count) > 200;
根本原因是where 不能和聚合函数配合使用
6、between …and… 需要注意的就是 start 是被 between 包括的,而后面的时间是不被包括的select * from table where create_time between '2020-11-11' and '2020-11-24'
7、字符转换,format()、convert()、cast()
format的特点: FORMAT函数在mysql中是数据内容格式化,可以格式化数据为整数或者浮点数select format(1111111.22333,2) as formatResult
仔细观察,发现去掉了小数,保留两位,但是我们发现竟然加上了 ‘,’,有时候遇到这个问题没有仔细观察真的很致命,所以格式化可考虑 convert() 或者 cast()
convert的特点: 可用来获取一个类型的值,并产生另一个类型的值,用法如下select convert(1111111.22333,type) as formatResult
type 中我们可以填入任何格式,这里举常用的两种类型
decimal:select convert(1111111.22333,decimal(12,2)) as formatResult
int:select convert(1111111.22333,SIGNED) as formatResult
其他的以此类推,可用参数如下:
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
cast(): 同convert 贴出使用参数select cast(1111111.22333,SIGNED) as formatResult
CHAR[(N)] 字符型
DATE 日期型
DATETIME 日期和时间型
DECIMAL float型
SIGNED int
TIME 时间型
几天前的时间获取 ?
1 | select a.Date as cur_date |
定时任务
一、查看定时任务
1 | SELECT event_name,event_definition,interval_value,interval_field,status |
二、开启,关闭定时任务
1 | alter event run_event on completion preserve enable;//开启定时任务 |
SQL 慢查询解决思路
一、使用explain 进行分析 sql,如下就行explain select * from table
只需要在查询语句之前带上explain关键字,那么就会得到一个查询分析
趋势
百分
- 本文作者: Cayden
- 本文链接: http://example.com/2020/11/24/MySql常用语法/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!