單個表的刪除:
DELETE FROM tableName WHERE columnName = value;
刪除表內的所有行:
即:保留表的結構、屬性、索引
DELETE FROM tablename;
DELETE * FROM tablename;
刪除同一張表內的所有內容(刪除數據、表結構)
TRUNCATE customer;
無法報告刪除了幾行,且只能用於單一表
多表連接刪除:
DELETE orders,items FROM orders,items
WHERE orders.userid = items.userid
AND orders.orderid = items.orderid
AND orders.date<”2000/03/01”;
需要刪除的表的名稱列在DELETE之后,連接條件所用的表列在FROM之后
假設刪除BV地區的所有葡萄酒場,但不刪除地名
DELETE winery FROM region,winery
WHERE winery.regionid = region.regionid
AND region.regionname = ‘BV’;
查詢只影響winery表,但同時利用winery,region找出需要刪除的記錄
使用高級連接查詢
DELETE orders,items FROM orders
INNER JOIN otems ON orders.orderid = items.orderid
AND orders.userid = items.userid
WHERE orders.date<”2000/03/01”;
也可在DELETE語句中使用嵌套查詢(內部查詢不可引用刪除的數據)、GROUP BY、HAVING;
也可在單一表查詢中使用ORDER BY,單數除非與LIMIT連用刪除部分數據行,否則並無太大意義。
加quick修飾符,可快速刪除索引項,加速大量或者頻繁的刪除操作
DELETE QUICK FROM customer WHERE userid<10;
只可用於類型為MyISAM的表
清理MyISAM的表
OPTIMIZE TABLE customer;
來自:https://blog.csdn.net/u013043762/article/details/80238372