Mysql清空数据

Mysql清空表(truncate)与删除表中数据(delete)的区别,以表t_test为例子
(1) truncate t_test;
(2) delete from t_test;
 truncate是整体删除(速度较快), delete是逐条删除(速度较慢)。
 truncate不写服务器log,delete写服务器log,也就是truncate效率比delete高的原因。
 truncate不激活trigger(触发器),但是会重置Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数。而delete删除以后,Identity依旧是接着被删除的最近的那一条记录ID加1后进行记录。

truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表,相当于手机重置

1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉

 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 
 或
 DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id

2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉

 DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 
 或 
 DELETE FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL

3、 从两个表中找出相同记录的数据并把两个表中的数据都删除掉

DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25

注意此处的delete t1,t2 from 中的t1,t2不能是别名
如:
delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25

在数据里面执行是错误的(MYSQL 版本不小于5.0在5.0中是可以的)
上述语句改 写成
delete table_name,table2_name from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25

4、修改字段

ALTER  TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;

只修改数据类型

alter table address modify column city varchar(60);

5.给表 t_repair_notice 字段 mouldtype 赋值, t_repair_notice 关联表 Mould ,Mould 关联表 Project

UPDATE  t_repair_notice,Mould,Project
SET    t_repair_notice.mouldtype = Project.projecttype
WHERE   t_repair_notice.mouldinteriorid = Mould.mouldID
AND Mould.projectID  =  Project.projectID

6.字段查询语句
show full columns from p_brand ;//查询表的字段信息

show create table p_brand;//查询表的ddl 创建语句

你可能感兴趣的:(mysql)