国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

sql語句中刪除表數據drop、truncate和delete的用法

2019-11-08 20:37:10
字體:
來源:轉載
供稿:網友

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

  說到刪除表數據的關鍵字,大家記得最多的可能就是delete了

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

  現在來介紹另外兩個兄弟,都是刪除表數據的,其實也是很容易理解的

  老大——drop

  出沒場合:drop table tb –tb表示數據表的名字,下同

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

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

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

  比如下面 TestSchool數據庫中有兩張表[Classes]表和[Teacher]表   這里寫圖片描述

  當執(zhí)行下面代碼之后   這里寫圖片描述

  Classes表就被清楚,一干二凈! 刪除得非常暴力,作為老大實至名歸   這里寫圖片描述

  老二—–truncate

  出沒場合:truncate table tb

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

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

  刪除內容很容易理解,不刪除定義也很容易理解,就是保留表的數據結構   這里寫圖片描述

  上圖就表現了:刪除內容 這里寫圖片描述   執(zhí)行語句之后,發(fā)現數據表的結構還在,也就是不刪除定義

  至于釋放空間,看下下面兩幅圖.你們就會明白的 這里寫圖片描述   右圖:Id列標識列,因之前delete過行數據,所以會出現標識列不連續(xù)(體現了delete刪除是不釋放空間的)

  經過truncate table Teacher 之后 再新增三條數據 這里寫圖片描述   右圖:同樣Id是標識列,發(fā)現插入數據的時候,標識列連續(xù)了(體現了truncate刪除是釋放空間)

  注意:truncate 不能刪除行數據,要刪就要把表清空

  老三—–delete

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

  或

  delete table tb where 條件

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

  然后關于delete的就不詳細說明了,大家都懂的

  關于truncate的小小總結:

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

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

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

  1、truncate 在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令Delete將被撤銷,而 truncate 則不會被撤銷。

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

  3、truncate 將重新設置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過 truncate 操作后的表比Delete操作后的表要快得多。

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

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

  6、不能清空父表


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 洞口县| 城步| 怀宁县| 汾阳市| 永康市| 封丘县| 吴旗县| 巫山县| 河北省| 长寿区| 嘉禾县| 上林县| 德钦县| 贵南县| 井陉县| 文昌市| 东乡| 康保县| 乌拉特后旗| 文水县| 阿坝县| 彭泽县| 霍城县| 巴东县| 桓仁| 马尔康县| 邢台市| 桂阳县| 谢通门县| 安岳县| 澎湖县| SHOW| 阳曲县| 三都| 湘乡市| 麻栗坡县| 潞城市| 高碑店市| 长岭县| 平阴县| 马尔康县|