不可不知的mysql 常用技巧总结
mysql常用命令
mysqld --启动mysql数据库
show databases; -- 查看数据库
use database; -- 选择数据库
show tables; -- 查看表
desc tableName; -- 查看表结构
show processlists; --如果查询慢,可以查看是否锁表
exit --退出mysql
service mysqld restart; --重启mysql服务
数据导入导出
--mysql导出数据
select * from test_table into outfile "d:/a.txt";
--mysql导入数据
LOAD DATA INFILE '/tmp/1.txt' INTO TABLE tmpuserid FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
表复制
--1)先创建table1
create table table1(id bigint);
--2)插入
insert into table1(id) select id from table2; --要求table1必须存在,字段必须一一对应
--mysql不支持select into from 语句
--MySQL does not support the SELECT ... INTO ... syntax.
mysql中日期函数:
--当前时间
select now(); --2008-12-29 16:25:46
CURDATE() -- 2008-12-29
CURTIME() -- 16:25:46
SELECT DATE_ADD("1997-12-31 23:59:59",INTERVAL -1 DAY); --日期增减
DATE_FORMAT(@insertDate, '%Y-%m-%d') --日期格式化,相当于oralce中的trunc方法
分区表
ALTER TABLE WebStat.PV_HIS drop partition p20130620;
ALTER TABLE WebStat.PV_HIS drop partition p20130621;
ALTER TABLE WebStat.PV_HIS drop partition p20130622;
--2.查看分区表
SELECT TABLE_NAME, PARTITION_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE Table_name = 'PV_HIS';
查看mysql是否锁住:
mysql > show processlist;
主要看STATE列
- Locked 被其他查询锁住了。
- Sending data 正在处理SELECT查询的记录,同时正在把结果发送给客户端。
- Sorting for group 正在为GROUP BY做排序。
- Sorting for order 正在为ORDER BY做排序。
- Sorting result For a SELECT statement, this is similar to Creating sort index, but for nontemporary tables.
- NULL This state is used for the SHOW PROCESSLIST state.
其他
- null与空’’
mysql中is not null 和 <> ''