學習是一件枯燥的事,你要犧牲自己的業餘時間,你要忍受孤獨,堅持下來了你就勝利了,學習是一個過程,只要循序漸進,每天進步一點點,只有這樣你才能提高進而成功。今天老韓來講一講mysql中的update語句和delete語句。
一、update(更新)語句;
update語句屬於DML語句,如果要更新資料庫中的數據時可以使用它。update根據更新範圍老韓分為兩種(老韓自己分的類,方便講解)。
首先查看我們的student表數據;
1、精準更新;
為什麼叫精準更新呢,因為語句中有where條件,會精準的對符合要求的行進行更新,標準寫法:update 表名 set 運算表達式 where 列名=值;
從上面圖片可以看到有老韓信息,但是老韓的信息有錯誤,老韓的班級信息和password錯誤了,老韓轉到二班了,密碼也重置成「888888」了,如何實現呢?請看sql語句:update student set classno=2,classname='二班',password='888888' where id=1
update語句中表達式可以寫成set 欄位=要更新的值,多個欄位的時候欄位中間用英文逗號隔開,這個地方不僅僅可以使用「=」使用運算表達式也可以,下面的通表更新中老韓會寫一個表達式的update語句,現在咱們來查一下更新的效果;可以看到老韓的信息修改了。
2、通表更新;
通標更新就是不加where條件,對表中所有的數據進行更新,標準寫法:update 表名 set 運算表達式;
學校入學是九月份,現在過了年了,同學們的年齡都增加了一歲,如何將student表中所有人的年齡增加1呢?請看sql語句:update student set age = (age+1),語句中「age+1」是一個表達式,並不是一個具體的值,這樣也可以,這個語句沒有where表達式意思就是通表(整張表)更新,來看一下更新的效果把,可以看到所有人age都增加了1。
二、delete(刪除)語句;
刪除語句同樣也是兩種方式,精準刪除和全部刪除;
為了方便演示,老韓又創建了一個goods(商品)表,創建語句為:
create table goods(
-- 編號為主鍵
Nub int UNIQUE not null PRIMARY key,
-- 商品名稱
goodsName varchar(50),
-- 價格
price DECIMAL(8,2) not null,
-- 庫存數量,不允許為負數
amount int UNSIGNED ,
-- 商品備註
remark varchar(100)
)
「--」表示的是注釋,跟Java注釋一樣,但是跟寫的字中間要有空格,老韓手動插入了一條數據如下圖所示;
直接可以通過圖中所示方法圖形化的增加數據,雖然有圖形化的維護功能,但是還需要熟悉sql語句。
1、精準刪除;
標準寫法delete from 表名 where 條件;
從上面的圖片可以看到老韓的飯店開張了,飯店裡有各種商品,吃的喝的,有一天一個客人吃了老韓做的紅燒肉拉肚子了,老韓就不再賣紅燒肉了,決定把紅燒肉刪除,如何實現呢?直接上SQL語句:delete from goods where nub=4,咱們看一下執行結果,紅燒肉從表中刪除了。
2、全部刪除;
標準寫法delete from 表名,可以看出和精準刪除相比,沒有where條件,這個意思就是把表中的所有數據都刪除,注意:只是刪除數據,表還存在,以後還可以寫數據。
咱們還結合上面的例子來講,紅燒肉沒了,客人要了一碗麵,結果又吃拉肚子了,給老韓投訴了,飯店倒閉了,所有的商品都要刪除,這個如何實現呢?直接上SQL語句:delete from goods,來看一下執行結果,可以看到所有的商品信息都沒了。
三、update和delete在實際工作中的應用;
update在實際工作中用到的記錄非常之高,delete有時候也會用到,接下來老韓列舉幾個實際中的應用。
1、update語句和定時任務(後面作為一個專題講)結合來執行一些定時任務,如每天晚上12點掃描員工是否入職滿一年,是否滿兩年......自動更新年假天數。
2、update語句在某個動作之後去更新數據,如財務系統中的庫存,在OA系統內走完審批之後會根據OA表單中的數量自動增加;如人員的狀態會在轉正申請之後變為正式,在離職之後改為離職;如在採購申請審批完畢之後自動的會扣減相應的預算等等。
3、delete語句經常用來清理數據,如我們去做項目了,需求都實現完了,也測試完了,明天上線,今天晚上必須要做的一件事那就是清理數據,可以使用delete來對測試數據進行清理,有的朋友可能會說使用truncate,比delete快的多,其實測試數據的體量就不要談什麼效率了,而且truncate不支持回滾(後面也會出專題來講),如果使用delete刪除錯了,我還可以恢復一下,使用truncate就不好弄了,就算是能恢復數據,不管是通過日誌也好什麼也好,那就得不償失了,所以清理數據使用delete。
update和delete用法及在實際工作中的應用就介紹完了,希望對讀者朋友有所幫助,如有問題可以通過圖片中聯繫方式聯繫老韓,老韓知無不答。沒有點關注的朋友可以點下關注,你們每一次的關注、轉發、收藏都是老韓持續更新的動力,謝謝觀看,我們下期再見。