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開始。