最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年03月07日 11:54:37   作者:兮動人  
對于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等)的操作默認(rèn)情況,一旦執(zhí)行,也是不可回滾的。但是,如果在執(zhí)行DML之前,執(zhí)行了 SET autocommit = FALSE,則執(zhí)行的DML操作就可以實現(xiàn)回滾。

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

SET autocommit = FALSE;

DELETE FROM myemp3;

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

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

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

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

SET autocommit = FALSE;

TRUNCATE TABLE myemp3;

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

回滾事物

rollback

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

4.效率對比

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

  • 如果想刪除部分?jǐn)?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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL數(shù)據(jù)備份之mysqldump的使用詳解

    MySQL數(shù)據(jù)備份之mysqldump的使用詳解

    下面小編就為大家?guī)硪黄狹ySQL數(shù)據(jù)備份之mysqldump的使用詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • MySQL 日期格式化的使用示例

    MySQL 日期格式化的使用示例

    在MySQL中,可以使用DATE_FORMAT函數(shù)對日期進(jìn)行格式化,本文就來介紹一下MySQL 日期格式化的使用示例,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • MySQL中的行級鎖詳解

    MySQL中的行級鎖詳解

    MySQL中的行級鎖是InnoDB存儲引擎提供的一種細(xì)粒度鎖,基于索引實現(xiàn),MySQL中鎖有很多種,其中從鎖的粒度來區(qū)分的話可以分為表級鎖,行級鎖,頁級鎖,本文主要介紹MySQL中的行級鎖,感興趣的朋友一起看看吧
    2025-03-03
  • MYSQL必知必會讀書筆記第五章之排序檢索數(shù)據(jù)

    MYSQL必知必會讀書筆記第五章之排序檢索數(shù)據(jù)

    本文給大家分享mysql必會必知讀書筆記第五章之排序檢索數(shù)據(jù),小編認(rèn)為非常具有參考價值,特此分享到腳本之家平臺供大家參考
    2016-05-05
  • mysql常用語句與函數(shù)大全及舉例

    mysql常用語句與函數(shù)大全及舉例

    文章主要介紹了MySQL查詢語句的執(zhí)行順序,包括FROM、WHERE、GROUP BY、HAVING、SELECT、ORDER BY和LIMIT等子句的使用方法,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • Mysql全文搜索match against的用法

    Mysql全文搜索match against的用法

    全文檢索在 MySQL 中就是一個 FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、 VARCHAR 或 TEXT 列上創(chuàng)建
    2011-10-10
  • MySQL表聚合與聯(lián)合查詢的實現(xiàn)

    MySQL表聚合與聯(lián)合查詢的實現(xiàn)

    MySQL聚合與聯(lián)合查詢是數(shù)據(jù)庫查詢中常用的技術(shù),它們能夠從多個數(shù)據(jù)源中提取和組合數(shù)據(jù),以獲得有用的信息和結(jié)果,本文就來介紹下MySQL聚合與聯(lián)合查詢,感興趣的可以了解一下
    2023-10-10
  • 解決ERROR?2003?(HY000):?Can‘t?connect?to?MySQL?server?on?‘localhost‘?(111)的問題

    解決ERROR?2003?(HY000):?Can‘t?connect?to?MySQL?server?

    在Windows系統(tǒng)上使用Django連接Ubuntu虛擬機中的MySQL數(shù)據(jù)庫時,遇到無法連接的問題,排查后發(fā)現(xiàn)是由于MySQL綁定的IP地址改變導(dǎo)致的,下面就來介紹一下問題解決,感興趣的可以了解一下
    2024-09-09
  • 解析MySQL中INSERT INTO SELECT的使用

    解析MySQL中INSERT INTO SELECT的使用

    本篇文章是對MySQL中INSERT INTO SELECT的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • 如何用workbench導(dǎo)出mysql數(shù)據(jù)庫關(guān)系圖

    如何用workbench導(dǎo)出mysql數(shù)據(jù)庫關(guān)系圖

    用workbench導(dǎo)出mysql數(shù)據(jù)庫關(guān)系圖的解決方法,需要的朋友請往下閱讀
    2013-03-03

最新評論

交口县| 中阳县| 安岳县| 延津县| 九江市| 武宣县| 定兴县| 内丘县| 缙云县| 泗水县| 潜江市| 夏邑县| 上蔡县| 洪湖市| 封开县| 苍溪县| 石门县| 太康县| 太仓市| 苍南县| 东山县| 于都县| 洪泽县| 江源县| 天台县| 盘锦市| 永泰县| 香河县| 关岭| 孟连| 永登县| 浪卡子县| 东平县| 黔西| 九龙坡区| 鄄城县| 黑山县| 毕节市| 南澳县| 尉氏县| 紫阳县|