1. 程式人生 > >MySQL---資料刪除方法delete、truncate、drop的區別

MySQL---資料刪除方法delete、truncate、drop的區別

  • delete、truncate、drop的用法

  1. MySQL 資料表中delete刪除資料的通用語法:

       刪除 students_tbl 表中 student_id 為3 的記錄:
    delete from students_tbl where student_id=3;

     

  2.  MySQL 資料表中truncate刪除資料的通用語法:

       刪除 students_tbl 表中的所有記錄:
    truncate table students_tbl
  3. MySQL 資料表中drop刪除資料的通用語法:

       刪除名為 students 的資料庫:
    drop database students

     

  •  delete、truncate、drop的區別

 

  1.  truncate和 delete只刪除資料不刪除表的結構(定義) ,drop語句將刪除表的資料以及結構
     
  2. delete是DML語句,操作會被放到 rollback segment中,事務提交後才生效,以便進行進行回滾操作(可恢復)。
    truncate、drop是DLL語句,操作立即生效,原資料不放到 rollback segment中,不能回滾(不可恢復)。
     
  3. delete操作之後表或索引所佔的空間不會減少,truncate操作之後表和索引所佔用的空間會恢復到初始大小,drop語句將表所佔用的空間全部釋放。
     
  4. 刪除速度: delete  < truncate < drop ;

總的來說:
              刪除表內部分資料用delete,刪除表內所有資料並且保留表的結構用truncate,刪除表或者庫用drop