Mysql刪除數(shù)據(jù)以及數(shù)據(jù)表的方法實例
在Mysql 中刪除數(shù)據(jù)以及數(shù)據(jù)表非常的容易,但是需要特別小心,因為一旦刪除所有數(shù)據(jù)都會消失。
刪除數(shù)據(jù)
刪除表內(nèi)數(shù)據(jù),使用delete關(guān)鍵字。
刪除指定條件的數(shù)據(jù)
刪除用戶表內(nèi)id 為1 的用戶:
delete from User where id = 1;
刪除表內(nèi)所有數(shù)據(jù)
刪除表中的全部數(shù)據(jù),表結(jié)構(gòu)不變。
對于 MyISAM 會立刻釋放磁盤空間,InnoDB 不會釋放磁盤空間。
delete from User;
釋放磁盤空間
optimize table User;
刪除數(shù)據(jù)表
刪除數(shù)據(jù)表分為兩種方式:
- 刪除數(shù)據(jù)表內(nèi)數(shù)據(jù)以及表結(jié)構(gòu)
- 只刪除表內(nèi)數(shù)據(jù),保留表結(jié)構(gòu)
drop
使用drop關(guān)鍵詞會刪除整張表,啥都沒有了。
drop table User;
truncate
truncate 關(guān)鍵字則只刪除表內(nèi)數(shù)據(jù),會保留表結(jié)構(gòu)。
truncate table User;
思考題:如何批量刪除前綴相同的表?
想要實現(xiàn) drop table like 'wp_%'
,沒有直接可用的命令,不過可以通過Mysql 的語法來拼接。
-- 刪除”wp_”開頭的表: SELECT CONCAT( 'drop table ', table_name, ';' ) AS statement FROM information_schema.tables WHERE table_schema = 'database_name' AND table_name LIKE 'wp_%';
其中database_name換成數(shù)據(jù)庫的名稱,wp_換成需要批量刪除的表前綴。
注意只有drop命令才能這樣用:
drop table if exists tablename`;
truncate只能這樣使用:
truncate table `tp_trade`.`setids`;
總結(jié)
- 當你不再需要該表時, 用drop;
- 當你仍要保留該表,但要刪除所有記錄時, 用truncate;
- 當你要刪除部分記錄時, 用delete。
到此這篇關(guān)于Mysql刪除數(shù)據(jù)以及數(shù)據(jù)表的文章就介紹到這了,更多相關(guān)Mysql刪除數(shù)據(jù)及數(shù)據(jù)表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文帶你玩轉(zhuǎn)MySQL獲取時間和格式轉(zhuǎn)換各類操作方法詳解
最近在開發(fā)中常常使用時間的轉(zhuǎn)換函數(shù),所以一直都想整理一下這些函數(shù),下面這篇文章主要給大家介紹了關(guān)于MySQL獲取時間和格式轉(zhuǎn)換各類操作方法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08