Mysql三種常用的刪除數(shù)據(jù)或者表的方式
前言
在 MySQL 中,有三種常用的方式可以刪除表中的數(shù)據(jù)或整個表,它們分別是 TRUNCATE、DROP 和 DELETE。
TRUNCATE TABLE
TRUNCATE TABLE屬于DDL語言,不走事務(wù),數(shù)據(jù)不會回滾
TRUNCATE TABLE 語句會刪除表中的所有數(shù)據(jù),但保留表的結(jié)構(gòu),同時重置自增主鍵,釋放空間
語法:
TRUNCATE TABLE table_name;
DROP TABLE
DROP TABLE屬于DDL語言,不走事務(wù),數(shù)據(jù)不會回滾
DROP TABLE 語句會完全刪除表,包括表的結(jié)構(gòu)和其中的數(shù)據(jù)。它會永久刪除表,立即釋放空間,無法撤銷。
語法:
DROP TABLE [IF EXISTS] table_name;
如果指定了 IF EXISTS,則在表不存在時不會報錯,直接返回操作成功。例如,DROP TABLE IF EXISTS employees; 將刪除名為 employees 的表,如果該表存在的話。
DELETE
DELETE屬于DML操作語言,只會刪除數(shù)據(jù)不會刪除表結(jié)構(gòu),會走事務(wù),可回滾
DELETE 語句用于逐行刪除表中的數(shù)據(jù),可以根據(jù)指定的條件刪除特定的行。
語法:
DELETE FROM table_name [WHERE condition];
DELETE 語句是一種較為慢速和資源密集的操作,因為它將逐行刪除表中的數(shù)據(jù),并且會觸發(fā)事務(wù)日志和觸發(fā)器等操作。如果只是想刪除表中的數(shù)據(jù)而不是整個表,TRUNCATE TABLE 操作通常更快和更高效。
使用 DELETE 語句刪除表中的數(shù)據(jù)并不會立即釋放磁盤空間,當(dāng)你執(zhí)行 DELETE 語句刪除行時,實際上是將這些行標(biāo)記為已刪除,但數(shù)據(jù)仍然占用磁盤空間。
如果你希望立即釋放磁盤空間,可以使用 OPTIMIZE TABLE 命令。該命令將重建表,并且可以壓縮表的數(shù)據(jù),從而釋放已刪除行所占用的空間。
到此這篇關(guān)于Mysql三種常用的刪除數(shù)據(jù)或者表的方式的文章就介紹到這了,更多相關(guān)Mysql 刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談MYSQL中樹形結(jié)構(gòu)表3種設(shè)計優(yōu)劣分析與分享
在開發(fā)中經(jīng)常遇到樹形結(jié)構(gòu)的場景,本文將以部門表為例對比幾種設(shè)計的優(yōu)缺點,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09MySql允許遠(yuǎn)程連接如何實現(xiàn)該功能
這篇文章主要介紹了 MySql允許遠(yuǎn)程連接如何實現(xiàn)該功能的相關(guān)資料,需要的朋友可以參考下2017-02-02MySQL巧用sum、case和when優(yōu)化統(tǒng)計查詢
這篇文章主要給大家介紹了關(guān)于MySQL巧用sum、case和when優(yōu)化統(tǒng)計查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Mysql實現(xiàn)全文檢索、關(guān)鍵詞跑分的方法實例
這篇文章主要給大家介紹了關(guān)于Mysql實現(xiàn)全文檢索、關(guān)鍵詞跑分的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09MySQL中刪除重復(fù)數(shù)據(jù)的簡單方法
這篇文章主要介紹了MySQL中刪除重復(fù)數(shù)據(jù)的簡單方法,比起一般的NOT IN語句的效率更為高,需要的朋友可以參考下2015-05-05MySQL優(yōu)化案例系列-mysql分頁優(yōu)化
這篇文章主要介紹了MySQL優(yōu)化案例系列-mysql分頁優(yōu)化,需要的朋友可以參考下2016-08-08