基本技能篇 SQL 基本語法之 刪

2021-10-19 10:23:26 字數 911 閱讀 6785

兩個都可以用來刪除表資料,但是有幾點區別:

(1)delete from 後面可以加條件,刪除特定的行資料,如:

delete from 表名 where xh =1

但是truncate table 是整個表都會清空,後面不能加條件;

(2)delete from 語句執行起來,沒有truncate table 效率高 ,因為delete語句是一行一行鎖定,然後一行一行地刪,每刪除一行都會記錄到事務日誌裡,而truncate 是一次性鎖定整個頁然後刪除,因此truncate 效率更高,所以清庫指令碼一般用它;

(3)結合第(2)點,既然truncate table不是一行一行刪除,那麼執行的時候自然就不會觸發任何的觸發器,什麼是觸發器?這個問題後面說;

(4)truncate table會把表的種子值重置,恢復到表結構設定的初始值,而delete from 不會,只是刪除記錄。什麼是種子值?這個問題,也是後面說。

綜合以上兩個層面的刪除,我們可知實際的應用場景中要注意:

同時刪除結構和資料用drop,刪除指定行資料用delete ,注意加好條件,表資料清空並重置種子值用truncate ;

不管什麼情況下的刪除,安全第一,一定要看好條件,不然刪錯了哭都來不及,最好加上begin tran 和rollback tran 。這是什麼?後面講;

就速度來說,一般情況下,drop > truncate >delete 。

刪除的就講這麼多,小夥伴們看完後不要躍躍欲試,要試可以去自己本機上搭個測試環境做實驗,不要在專案環境上玩,不然炸鍋了可別說是我教的。

基本技能篇 SQL 基本語法之 改

前面的幾篇文章說到sql的一些基礎概念,以及物件層面和資料層面的增和刪,今天說下 改 資料庫的 改 即修改,我們還是從兩個層面來說 1.物件層面 資料庫物件的修改關鍵字是alter 如 alter table 表名 add 欄位名 型別 預設值 增加表字段 alter table 表名 alter ...

基本技能篇 SQL 的變數

變數,是相對於常量而言的乙個概念,字面的意思常量就是乙個不變的值,如1,2,3,4,5,6 a,bc之類的,變數就是乙個可變的值。變數可分為區域性變數和全域性變數,區域性變數需要預先定義,前面以乙個 開頭,常於declare聯用,全域性變數可以看作是系統變數,不用定義可以直接呼叫,前面以兩個 開頭。...

設計的基本技能

1 繪畫基礎與造型能力 繪畫基礎與造型能力是服裝設計師的基本技能之一。當然,以前的設計大師也有個別不會畫畫的,但他需要在其他方面有更傑出的表現。但有些人即使通過在學校系統地學習和培訓,仍然不能很好地用繪畫方式表達設計意念的話,那將為自己的創作帶來很大的困難。只有具備了良好的繪畫基礎才能通過設計的造型...