日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法_MySQL教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:安裝sql server 2008 報(bào)錯(cuò)等問題怎么解決
問題1:安裝sql server 2008 R2,安裝過程中提示錯(cuò)誤:此計(jì)算機(jī)上安裝了 Microsoft Visual Studio 2008 的早期版本。請(qǐng)?jiān)诎惭b SQL Server 2008 前將 Microsoft Visual Studio 2008 升級(jí)到 SP1。 之前我的電腦上確實(shí)裝了vs2008,于是我準(zhǔn)備去下載一個(gè)SP1補(bǔ)丁包,一看800

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

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

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

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

  老大------drop

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

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

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

  drop table class,就是把整個(gè)班移除.學(xué)生和職務(wù)都消失

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

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法 模板無憂

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

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法

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

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法

  老二-----truncate

  出沒場(chǎng)合:truncate table tb

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

  同樣也是一個(gè)班,他只去除所有的學(xué)生.班還在,職務(wù)還在,如果有新增的學(xué)生可以進(jìn)去,也可以分配上職務(wù)

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

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法

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

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法

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

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

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法

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

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

sql語句中刪除表數(shù)據(jù)drop、truncate和delete的用法

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

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

  老三-----delete

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

  或

  delete table tb where 條件

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

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

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

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

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

  delete 語句每次刪除一行,并在事務(wù)日志中為所刪除的每行記錄一項(xiàng)。所以可以對(duì)delete操作進(jìn)行roll back

  1、truncate 在各種表上無論是大的還是小的都非�?臁H绻蠷OLLBACK命令Delete將被撤銷,而 truncate 則不會(huì)被撤銷。

  2、truncate 是一個(gè)DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對(duì) truncate 使用ROLLBACK命令。

  3、truncate 將重新設(shè)置高水平線和所有的索引。在對(duì)整個(gè)表和索引進(jìn)行完全瀏覽時(shí),經(jīng)過 truncate 操作后的表比Delete操作后的表要快得多。

  4、truncate 不能觸發(fā)任何Delete觸發(fā)器。

  5、當(dāng)表被清空后表和表的索引講重新設(shè)置成初始大小,而delete則不能。

  6、不能清空父表

分享:Mysql教程之Windows 7/8下連接本地MySQL慢怎么辦
最近本地調(diào)試網(wǎng)站的時(shí)候個(gè)別程序如phpcms一直出現(xiàn)這個(gè)問題,速度異常慢,偶爾發(fā)現(xiàn)下面的文章,才提醒了我,原來問題這樣的。。。 最近在windows上開發(fā)應(yīng)用的時(shí)候發(fā)現(xiàn)一個(gè)有趣的問題:我的本地程序連接本地mysql庫(kù)居然要延遲1秒鐘左右才能打開。 問題分析 考慮到可能是

來源:模板無憂//所屬分類:MySQL教程/更新時(shí)間:2014-10-10
相關(guān)MySQL教程