刪除數據高級用法:delete,truncate


1、語法:


  delete 允許使用條件(刪除符合條件的數據)
     允許使用limit,限制刪除的記錄數。limit N

        常見的是,limit配合order by來使用:先將結果排序,再刪除固定數量的記錄,如果只有order by的刪除操作是沒有意義的。
  例子:delete from teacher order by days desc limit 10;
  解析:將teacher表中的days字段按照降序排序,取前10條刪除。

2、連接刪除:


  允許使用類似的join語法,同時刪除多個表內的記錄。需要先提供表名,再提供連接條件。
  可以拆分成理解為:先delete join_teacher,再delete join_teacher_class


例子:

delete from join_teacher,join_teacher_class 
      using join_teacher_class join join_teacher on 
      join_teacher_class.t_id=join_teacher.id 
      where join_teacher.id=1;

刪除前:

 命令:delete from join_teacher,join_teacher_class 
      using join_teacher_class join join_teacher on 
      join_teacher_class.t_id=join_teacher.id 
      where join_teacher.id=1;

刪除后:


3、清空表操作:


    truncate,類似:delete from table_name;

   truncate要點:   1)不會返回刪除的記錄數;

             2)重建自動增長的主鍵 ;

             3)刪除表,再新建表。

例子:truncate b_table;     #系統提示刪除了24條記錄。

   insert into b_table values (null,'hoho','會計');  #此時由於truncate命令的特性,不會保留刪除的記錄數,所以默認從a_id=1開始。  

    delete要點:1)逐行刪除 ;

            2)會保留增長的主鍵記錄。

例子:delete from a_table;      #系統提示刪除了24條記錄。

    insert into a_table values (null,'haha','會計');        #此時由於delete命令的特性,會保留刪除的記錄數,所以默認從a_id=25開始。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM