MYSQL命令笔记

来源:互联网 发布:查看php安装目录 编辑:程序博客网 时间:2024/05/29 07:26
新建数据库命令
create database 数据库名

把表从这个数据库导入另一个数据库
create table fromtable select * from db1.fromtable;

在cmd命令行下修改mysql密码
mysqladmin -u用户名 -p旧密码 password 新密码

清空全部数据,不写日志,不可恢复,速度极快
truncate table 表名;
 
清空全部数据,写日志,数据可恢复,速度慢
delete from 表名

删除表:drop table  表名

删除字段
MySQL ALTER TABLE table_name DROP field_name;

增加字段
mysql> ALTER TABLE table_name ADD field_name field_type DEFAULT 1;
增加一个字段:alter table 表名 add 字段名 类型 not nullDEFAULT 1 after 字段名 comment '';

mysql中怎样修改表格的名字
alter table table_name rename table_new_name;

时间转换
long类型转换为指定时间格式:DATE_FORMAT( rq, '%Y-%m-%d')
毫秒数转换为指定时间格式:FROM_UNIXTIME(startTime/1000,'%Y-%m-%d %H:%i:%s')
时间转换为毫秒数:UNIX_TIMESTAMP(t.stu_date)

行转列
select  username, MAX(CASE time WHEN '2016-11-22 00:00:00' THEN count ELSE 0 END ) '2016-11-22',MAX(CASE time WHEN '2016-11-23 00:00:00' THEN count ELSE 0 END ) '2016-11-23' from dpm_monitor_job_day_user where time  in ('2016-11-22 00:00:00','2016-11-23 00:00:00') group by username limit 10;

分割字符串:subString(字符串,起始位置,结束位置)
查看字符串长度:length(字符串)
group by和order by一起使用时,order by要在group by后面
数据去重:distinct();
sql取数值两位小数:convert(xxx,decimal或数值);


CONCAT(str1,str2,...)
返回来自于参数连结的字符串。如果任何参数是NULL,返回NULL。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。

禁止在WHERE条件的属性上使用函数或者表达式
解读:SELECT uid FROM t_user WHERE from_unixtime(day)>='2017-02-15' 会导致全表扫描
正确的写法是:SELECT uid FROM t_user WHERE day>= unix_timestamp('2017-02-15 00:00:00')

mysql中避免重复插入记录方法
在INSERT INTO…..后面加上 ON DUPLICATE KEY UPDATE方法
原创粉丝点击