欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sqlserver中drop、truncate和delete語句的用法

 更新時間:2014年09月01日 11:11:11   投稿:junjie  
這篇文章主要介紹了sqlserver中drop、truncate和delete語句的用法,本文圖文并茂,內(nèi)容清晰,需要的朋友可以參考下

雖然小編不建議大家去用命令刪除數(shù)據(jù)庫表中的東西,但是這些刪除命令總有用的著的地方。

說到刪除表數(shù)據(jù)的關(guān)鍵字,大家記得最多的可能就是delete了

然而我們做數(shù)據(jù)庫開發(fā),讀取數(shù)據(jù)庫數(shù)據(jù).對另外的兩兄弟用得就比較少了

現(xiàn)在來介紹另外兩個兄弟,都是刪除表數(shù)據(jù)的,其實也是很容易理解的

老大------drop

出沒場合:drop table  tb --tb表示數(shù)據(jù)表的名字,下同

絕招:刪除內(nèi)容和定義,釋放空間。簡單來說就是把整個表去掉.以后要新增數(shù)據(jù)是不可能的,除非新增一個表,

       例如:一個班就是一個表,學生就是表中的數(shù)據(jù),學生的職務就是定義

       drop table class,就是把整個班移除.學生和職務都消失

比如下面TestSchool數(shù)據(jù)庫中有兩張表[Classes]表和[Teacher]表

當執(zhí)行下面代碼之后

Classes表就被清楚,一干二凈! 刪除得非常暴力,作為老大實至名歸

老二-----truncate

出沒場合:truncate table tb

絕招:刪除內(nèi)容、釋放空間但不刪除定義。與drop不同的是,他只是清空表數(shù)據(jù)而已,他比較溫柔.

同樣也是一個班,他只去除所有的學生.班還在,職務還在,如果有新增的學生可以進去,也可以分配上職務

刪除內(nèi)容很容易理解,不刪除定義也很容易理解,就是保留表的數(shù)據(jù)結(jié)構(gòu)

上圖就表現(xiàn)了:刪除內(nèi)容

執(zhí)行語句之后,發(fā)現(xiàn)數(shù)據(jù)表的結(jié)構(gòu)還在,也就是不刪除定義

至于釋放空間,看下下面兩幅圖.你們就會明白的

右圖:Id列標識列,因之前delete過行數(shù)據(jù),所以會出現(xiàn)標識列不連續(xù)(體現(xiàn)了delete刪除是不釋放空間的)

經(jīng)過truncate table Teacher 之后 再新增三條數(shù)據(jù)

右圖:同樣Id是標識列,發(fā)現(xiàn)插入數(shù)據(jù)的時候,標識列連續(xù)了(體現(xiàn)了truncate刪除是釋放空間)

注意:truncate 不能刪除行數(shù)據(jù),要刪就要把表清空

老三-----delete

出沒場合:delete table tb   --雖然也是刪除整個表的數(shù)據(jù),但是過程是痛苦的(系統(tǒng)一行一行地刪,效率較truncate低)

            或

            delete table tb where 條件

絕招:刪除內(nèi)容不刪除定義,不釋放空間。三兄弟之中最容易欺負的一個

然后關(guān)于delete的就不詳細說明了,大家都懂的

關(guān)于truncate的小小總結(jié):

truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。

但 truncate 比 delete速度快,且使用的系統(tǒng)和事務日志資源少。

delete 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。所以可以對delete操作進行roll back

1、truncate 在各種表上無論是大的還是小的都非???。如果有ROLLBACK命令Delete將被撤銷,而 truncate 則不會被撤銷。 
2、truncate 是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對 truncate 使用ROLLBACK命令。 
3、truncate 將重新設置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經(jīng)過 truncate 操作后的表比Delete操作后的表要快得多。 
4、truncate 不能觸發(fā)任何Delete觸發(fā)器。 
5、當表被清空后表和表的索引講重新設置成初始大小,而delete則不能。 
6、不能清空父表

相關(guān)文章

  • 你真的知道怎么優(yōu)化SQL嗎

    你真的知道怎么優(yōu)化SQL嗎

    這篇文章主要給大家介紹了關(guān)于優(yōu)化SQL的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用SQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • PostgreSQL8.3.3安裝方法

    PostgreSQL8.3.3安裝方法

    非安裝版的PostgreSQL8.3.3的首次使用經(jīng)歷第一次用Postgre,已經(jīng)是好多年以前了,隱約記得是在linux下邊,build半天,然后手動配置庫文件之類。
    2008-09-09
  • Navicat for MySQL 亂碼問題解決方法

    Navicat for MySQL 亂碼問題解決方法

    這篇文章主要介紹了Navicat for MySQL 亂碼問題解決方法,Navcat是Windows常用的Mysql管理軟件,本文講解它出現(xiàn)亂碼的解決方法,需要的朋友可以參考下
    2015-02-02
  • Apache?Doris?Join?優(yōu)化原理詳解

    Apache?Doris?Join?優(yōu)化原理詳解

    這篇文章主要為大家介紹了Apache?Doris?Join?優(yōu)化原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 數(shù)據(jù)庫設計技巧奉送了

    數(shù)據(jù)庫設計技巧奉送了

    數(shù)據(jù)庫設計技巧奉送了...
    2007-03-03
  • Linux下Navicat15激活的詳細步驟

    Linux下Navicat15激活的詳細步驟

    這篇文章主要介紹了Linux下激活Navicat15的詳細步驟,經(jīng)過測試Navicat?15.0.8版本可激活,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 90%程序員面試會遇到的索引優(yōu)化問題

    90%程序員面試會遇到的索引優(yōu)化問題

    不管是用C/C++/Java等代碼編寫的程序,還是SQL編寫的數(shù)據(jù)庫腳本,都存在一個持續(xù)優(yōu)化的過程。也就是說,代碼優(yōu)化對于程序員來說,是一個永恒的話題。下面這篇文章主要給大家總結(jié)介紹了90%程序員在面試的時候會遇到的索引優(yōu)化問題,需要的朋友可以參考下。
    2017-11-11
  • 大數(shù)據(jù)開發(fā)phoenix連接hbase流程詳解

    大數(shù)據(jù)開發(fā)phoenix連接hbase流程詳解

    HBase是一個分布式的、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于?Fay?Chang?所撰寫的Google論文“Bigtable:一個結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File?System)所提供的分布式數(shù)據(jù)存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力
    2022-11-11
  • 如何讓你的SQL運行得更快

    如何讓你的SQL運行得更快

    如何讓你的SQL運行得更快...
    2007-06-06
  • sql注入之新手入門示例詳解

    sql注入之新手入門示例詳解

    這篇文章僅僅是對SQL注入進行了一個簡單的入門知識的講解,是sql注入的基礎篇,有個好的開頭能夠幫助大家對SQL注入有一個具體清晰的了解和認識。下面來一起看看吧,有需要的可以參考借鑒。
    2016-09-09

最新評論