MySQL教程之刪除或更新現有記錄

來源:互聯網
上載者:User


    1.4.9 刪除或更新現有記錄
    有時,希望除去某些記錄或更改它們的內容。DELETE 和UPDATE語句令我們能做到這一點。
    DELETE 語句有如下格式:
    DELETE FROM tbl_nameWHERE 要刪除的記錄
    WHERE 子句指定哪些記錄應該刪除。它是可選的,但是如果不選的話,將會刪除所有的記錄。這意味著最簡單的DELETE 語句也是最危險的。
   DELETE FROM tb1_name
   這個查詢將清除表中的所有內容。一定要當心!為了刪除特定的記錄,可用WHERE 子句來選擇所要刪除的記錄。這類似於SELECT 語
句中的WHERE 子句。例如,為了刪除president 表中所有出生在Ohio 的總統記錄,可用下列查詢:

   DELETE 語句中的WHERE 子句的一個限制是只能夠引用要刪除記錄的表中的列。在發布DELETE 語句以前,最好用SELECT 語句測試一下相應的WHERE 子句以確保實際刪除的記錄就是確實想要刪除的記錄(而且只刪除這些記錄)。假如想要刪除Te d d yRoosevelt 的記錄。下面的查詢能完成這項工作嗎?

    是的,感覺上它能刪除您頭腦中打算刪除的記錄。但是,錯了,實際上它也能刪除Franklin Roosevelt 的記錄。如果首先用WHERE 子句檢查一下就安全了,如下所示:

    現在我們明白了能選擇出所需記錄的WHERE 子句了,因此DELETE 查詢可正確地構造如下:

    似乎刪除一個記錄需要做許多工作,不是嗎?但是安全第一!(如果想使鍵盤輸入工作盡量少,可利用拷貝和粘貼技術或採用輸入行編輯技術。更詳細的資訊,請參閱“與mysql互動的技巧”一節。)為了修改現有記錄,可利用UPDATE語句,它具有下列格式:
UPDATEt b l_name SET 要更改的列WHERE 要更新的記錄這裡的WHERE 子句正如DELETE 語句一樣,是可選的,因此如果不指定的話,表中的每個記錄都被更新。下面的查詢將每個學生的名字都更改為“ G e o rg e”:

    顯然,對於這樣的查詢必須極為小心。一般對正在更新的記錄要更為小心。假定近來增加了一個新記錄到曆史同盟,但是只填寫了此實體的少數幾個列:

    然後意識到忘了設定其會員終止日期。那麼可如下進行設定:

    可同時更新多個列。下面的語句將更新Jerome 的電子郵件和通訊地址:

    還可以通過設定某列的值為NULL(假設此列允許NULL 值)“不設定”此列。如果在未來的某個時候Jerome 決定支付成為終生會員的會員資格更新費,那麼可以設定其記錄的終止日期為NULL(“永久”)以標記他為終生會員。具體設定如下:

    正如DELETE 語句一樣,對於UPDATE,用SELECT 語句測試WHERE 子句以確保選擇正確的更新記錄是一個好辦法。如果選擇條件範圍太窄或太寬,就會使更新的記錄太少或太多。如果您實驗過本節中的查詢,那麼必定已經刪除和修改了samp_db 表中的記錄。在繼續學習下一節的內容以前,應該撤消這些更改。按1. 4 . 7節“增加新記錄”最後的說明重新裝載表的內容來完成這項工作。
    1.4.10 改變表的結構
    回顧我們建立曆史同盟member 表時缺了一個會員號列,因此我們可以進行一次ALTE RTABLE 語句的練習。需要用ALTER TABLE,可以對錶重新命名,增加或刪除列,更改列的類型等等。這裡給出的例子是關於怎樣增加新列的。有關ALTER TABLE 功能的詳細內容,請參閱第3章。增加會員號列到member 表的主要考慮是,其值應該是唯一的,以免各會員條目混淆。AUTO_INCREMENT 列在此是很有用的,因為我們可以在增加新的號碼時令MySQL自動地產生唯一的號碼。在CREATE TABLE 語句中,這樣一個列的說明如下:

    對於ALTER TABLE,相應的句法也是類似的。可執行下列查詢增加該列:

    我們已經有一個存放會員號的列,現在怎樣分配會員號給member 表中的現有記錄呢?很容易!MySQL已經做了這項工作。在增加一列到某個表時, MySQL將會用預設值初始化該列值。對於AUTO_INCREMENT 列,每個行將會產生一個新的順序號。




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.