国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - mysql中drop、truncate與delete的區(qū)別詳析

mysql中drop、truncate與delete的區(qū)別詳析

2022-03-07 17:00兮動人 Mysql

對于drop、truncate和delete雖然簡單,但是真要使用或者面試時候問到還是需要有一定的總結(jié),下面這篇文章主要給大家介紹了關(guān)于mysql中drop、truncate與delete區(qū)別的相關(guān)資料,需要的朋友可以參考下

 

1. drop:刪除數(shù)據(jù)庫

  • drop語句將表所占用的空間全釋放掉。
  • drop > truncate > delete

方式1:如果要刪除的數(shù)據(jù)庫存在,則刪除成功。如果不存在,則報錯

DROP DATABASE mytest1;

方式2:推薦。 如果要刪除的數(shù)據(jù)庫存在,則刪除成功。如果不存在,則默默結(jié)束,不會報錯。

DROP DATABASE IF EXISTS mytest1;	

 

2. 對比 TRUNCATE TABLE 和 DELETE FROM

相同點:都可以實現(xiàn)對表中所有數(shù)據(jù)的刪除,同時保留表結(jié)構(gòu)。

不同點:

  • TRUNCATE TABLE:一旦執(zhí)行此操作,表數(shù)據(jù)全部清除。同時,數(shù)據(jù)是不可以回滾的。
  • DELETE FROM:一旦執(zhí)行此操作,表數(shù)據(jù)可以全部清除(不帶WHERE)。同時,數(shù)據(jù)是可以實現(xiàn)回滾的。

 

3. DDL 和 DML 的說明

① DDL(CREATE 、 DROP 、 ALTER、TRUNCATE 等)的操作一旦執(zhí)行,就不可回滾。指令SET autocommit = FALSE對DDL操作失效。(因為在執(zhí)行完DDL操作之后,一定會執(zhí)行一次COMMIT。而此COMMIT操作不受 SETautocommit = FALSE影響。)

② DML(INSERT 、 DELETE 、 UPDATE 、 SELECT等)的操作默認情況,一旦執(zhí)行,也是不可回滾的。但是,如果在執(zhí)行DML之前,執(zhí)行了 SET autocommit = FALSE,則執(zhí)行的DML操作就可以實現(xiàn)回滾。

演示1:DELETE FROM 刪除數(shù)據(jù)后,恢復(fù)數(shù)據(jù)

mysql中drop、truncate與delete的區(qū)別詳析

SET autocommit = FALSE;

mysql中drop、truncate與delete的區(qū)別詳析

DELETE FROM myemp3;

mysql中drop、truncate與delete的區(qū)別詳析

查詢后數(shù)據(jù)為空

mysql中drop、truncate與delete的區(qū)別詳析

回滾數(shù)據(jù)

mysql中drop、truncate與delete的區(qū)別詳析

再次查詢,可以看到恢復(fù)數(shù)據(jù)了

mysql中drop、truncate與delete的區(qū)別詳析

演示2:TRUNCATE TABLE,不能回滾數(shù)據(jù)操作

mysql中drop、truncate與delete的區(qū)別詳析

SET autocommit = FALSE;

mysql中drop、truncate與delete的區(qū)別詳析

TRUNCATE TABLE myemp3;

mysql中drop、truncate與delete的區(qū)別詳析

清空了數(shù)據(jù)

mysql中drop、truncate與delete的區(qū)別詳析

回滾事物

rollback

mysql中drop、truncate與delete的區(qū)別詳析

查詢后數(shù)據(jù)并沒有恢復(fù)

mysql中drop、truncate與delete的區(qū)別詳析

 

4.效率對比

在速度上,一般來說,drop> truncate > delete。

  • 如果想刪除部分數(shù)據(jù)用delete,注意帶上where子句,回滾段要足夠大;如果想刪除表,當(dāng)然用drop;
  • 如果想保留表而將所有數(shù)據(jù)刪除,如果和事務(wù)無關(guān)(不能回滾),用truncate即可;
  • 如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete;
  • 如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導(dǎo)入/插入數(shù)據(jù)。
  • truncate與drop是DDL語句,執(zhí)行后無法回滾;delete是DML語句,可回滾。
  • truncate只能作用于表;delete,drop可作用于表、視圖等。
  • truncate會清空表中的所有行,但表結(jié)構(gòu)及其約束、索引等保持不變;drop會刪除表的結(jié)構(gòu)及其所依賴的約束、索引等。
  • truncate會重置表的自增值;delete不會。
  • truncate不會激活與表有關(guān)的刪除觸發(fā)器;delete可以。
  • truncate后會使表和索引所占用的空間會恢復(fù)到初始大??;delete操作不會減少表或索引所占用的空間,drop語句將表所占用的空間全釋放掉。

 

總結(jié)

到此這篇關(guān)于mysql中drop、truncate與delete區(qū)別的文章就介紹到這了,更多相關(guān)mysql drop、truncate和delete區(qū)別內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文地址:https://blog.csdn.net/qq_41684621/article/details/123248516

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产一区二区 | 美国特级a毛片免费网站 | 亚洲国产成人一区二区精品区 | 国产精品亲子伦av一区二区三区 | 国产一区二区三区欧美 | 在线中文av | 黄色免费视频 | 色婷婷av一区二区三区大白胸 | 欧美一级特黄aaaaaaa在线观看 | 免费的黄色一级片 | 欧美日韩中文字幕 | 欧美xo影院 | 九九热视频精品在线观看 | 成人免费视频亚洲 | 国产精品亚洲a | 日韩中文字幕免费在线播放 | 日韩av免费在线观看 | 国产精品欧美一区二区三区 | 亚洲精品欧美精品 | 国产精品初高中精品久久 | 中文字幕色 | 久久噜| 国产伦精品一区二区三区四区视频_ | 成人欧美一区二区三区色青冈 | 热久久这里只有精品 | 欧洲一区| 亚洲精品成人 | 欧美国产综合 | 亚洲欧洲精品成人久久奇米网 | 国产精品日韩精品 | 日韩精品一区在线 | 久久久www成人免费无遮挡大片 | 国产精品久久久久久久久久久久久 | 日韩免费一区二区 | 久久精品亚洲成在人线av网址 | 性毛片| 国产玖玖视频 | 欧美在线日韩 | 日日夜夜精品免费视频 | 国产美女网站视频 | 日韩激情在线 |