一.删除重复数据,删除之后顺序是乱的,需要重排id(主键)
delete t from 表名 s join 表明 t using(字段1,字段2) where s.id<t.id;
二.重排id
1.删除原有主键
ALTER TABLE 表名 DROP `id`;
2.添加新主键字段
ALTER TABLE 表名 ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST;
3.设置新主键:
ALTER TABLE 表名 MODIFY COLUMN `id` INT( 8 ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);
三.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表;
四.只复制表结构到新表
CREATE TABLE 新表 LIKE 旧表;
五.删除表内容,保留表结构
truncate table 表名;
相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
六.旧表按照某个字段排序之后导入新表
insert into 新表名(新表字段1, 新表字段2.....) select 旧表字段1,旧表字段2 from 旧表名 order by 旧表某字段 desc(降序)/asc(升序);
七.MySQL—将多张表合并为一张新表
create table 新表名 select * from 表1 union(union all) select * from 表2;
UNION与UNION ALL的区别如下:
1.对重复结果的处理:UNION在进行表链接后会去重,UNION All不会。
2.对排序的处理:Union将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。
UNION ALL 要比UNION效率高,所以,如果可以确认合并的两个结果集中不包含重复数据且不需要排序时的话,那么就使用UNION ALL。