1. 批量删除前缀相同的表:
(1)首先通过select语句执行,得出drop语句
select concat( 'drop table ',table_name , ';' ) FROM information_schema.tables Where table_name LIKE 'content_audit_2017%' ;
(2)复制结果语句,进行执行
2. 添加,修改,删除表的列,约束等表的定义:
- 查看列:desc 表名;
- 修改表名:alter table user rename to users;
- 添加列:alter table 表名 add column 列名 varchar(30);
- 删除列:alter table 表名 drop column 列名;
- 修改列名MySQL: alter table user change nnnnn hh int;
- 修改列名SQLServer:exec sp_rename't_student.name','nn','column';
- 修改列名Oracle:alter table user rename column nnnnn to hh int;
- 修改列属性:alter table user modify name varchar(22);
3.删除表里面的数据
DELETE和TRUNCATE TABLE的最大区别是DELETE可以通过WHERE语句选择要删除的记录。但执行得速度不快。而且还可以返回被删除的记录数。
而TRUNCATE TABLE无法删除指定的记录,而且不能返回被删除的记录。但它执行得非常快。
(我要删除一个3000万的数据表,delete要100万执行4-5分钟,truncate只需几秒)
4.远程导出mysql文件
使用mysql -h(hostip) -u(username) -p(userpw) (数据库名称) -N -e "select * from test into outfile '/tmp/test.txt' fields terminated by ','; "命令导出只能导出到mysql本地,不能远程导出;
需改变为:mysql -h(hostip) -u(username) -p(userpw) (数据库名称) -N -e " select concat(ifnull(id,''),',',ifnull(name,''),',',ifnull(age,'')) from test;" > /home/sendi/haoxy/test.txt
注:-N指去除标题