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表資料
delete from 表名 truncate table 表名 不帶where引數的delete語句可以刪除mysql表中所有內容,使用truncate table也可以清空mysql表中所有內容。效率上truncate比delete快,但truncate刪除後不記錄mysql日誌,不可以恢復資料...
Mysql清空表中資料
常用的清空資料表的sql語句有如下兩種 delete from 表名 truncate table 表名第一種方法 是刪除表中資料且主鍵id是繼續順序排下去 第二種方法 是徹底清空表中資料 把資料結構恢復至剛建表的時候 資料全部清空 從效能上講 測試了三千條資料delete from table比t...
Mysql 清空表中資料
刪除表資訊的方式有兩種 truncate table table name delete from table name 注 truncate操作中的table可以省略,delete操作中的 可以省略 truncate與delete清空表資料的區別 truncate 是整體刪除 速度較快 delet...