Mysql常用命令(二)与常用函数

Posted1 by 呼延十 on October 16, 2018 Hot:

由于我日常在mac OS 和ubuntu上进行开发,安装Navicat有点麻烦,,,而Navicat是我比较喜欢的图形化界面,因此在纠结一阵之后决定,,就用命令行搞了吧,,也有优势的,你看我这不是记住好多命令了嘛。

下面将按照日常使用顺序,介绍一些日常使用的MySQL命令。

//登录,在shell中使用
mysql -u username -p
//显示所有数据库
show databases;
//选择数据库
use mydb;
//显示所有数据表
show tables;
//查看表结构
desc mytable;
//查看表的创建语句
show create table mytable;
//修改表结构
ALTER TABLE `mytable` ADD COLUMN `add_column` VARCHAR(256) COMMENT '添加的列' after device_id;
//表添加主键
Alter table tb add primary key(id);
//修改表名
ALTER  TABLE table_name RENAME TO new_table_name

最后这两条命令在使用flyway时尤其重要,因为平时你可以在本地删库重建,但是在线上记录了版本,必须通过修改语句修改字段or表名。

flyway了解一下!

几个常用函数

最近的工作中用到了一些MySQL的函数,特此记录一下。

floor(x)

该函数返回x的最大整数值,但是不能大于x。即:不能四舍五入。

可以看到floor(2.88)floor(2.223)得到的结果都是2;

round(x,d)

round()函数返回x的四舍五入整数值。当存在第二个参数d时,四舍五入结果为x保留小数点后d位的浮点数。

from_unixtime(unix_timestamp, format)

我们经常在数据库中以时间戳的形式保存时间,这样很方便,但是存在一个问题,查询出来的时候我们看不懂当前记录是哪一天的,因此MySQL提供了from_unixtime()函数。

第一个参数为时间戳(PS:秒级时间戳),第二个参数为转化后的日期格式,如果第二个字符串为空,则默认格式为:%Y-%m-%d %H:%i:%s即:2018-10-11 12:00:23.

substr(string,index,length)

字符串截取函数,第一个参数为原字符串,第二个参数为截取起始的index,第三个字符串为截取长度。

实例:


select count(*),substr(from_unixtime(floor(event_timestamp / 1000)),1,10)
from dau
where 1=1
group by substr(from_unixtime(floor(event_timestamp / 1000)),1,10)

这个例子中:数据库存的是每一条记录的时间戳,但是查询需求需要按照日期分组,所以首先将时间戳除以1000拿到秒级时间戳,然后拿到日期字符串并截取日期部分,拿到类似于2018-10-11的字段并按照他分组计数。

当然还可以使用

直接拿到日期字段。

其他函数

菜鸟教程-mysql-函数





ChangeLog

2018-10-16 完成

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com

更多学习笔记见个人博客——>呼延十