刪除數據DELETE語句()
刪除不需要的信息與一開始時錄入這些信息同等重要在LIBRARY數據庫的例子中可能丟失或出售了一本圖書那麼這本圖書的信息也就無須再保存在數據庫中SQL提供了DELETE語句用於處理刪除記錄的情形要刪除一個表中的所有記錄可以使用下面的語句
DELETE FROM myLibrary;
在一些RDBMS中無須使用FROM關鍵字只需要給出表名即可但某些RDBMS則堅持要求使用FROM關鍵字執行上面的DELETE語句之後表中的記錄將被全部刪除在數據庫中只剩下一個空表讀者可以從wwwwroxcom或者wwwagilitatorcom下載相同的INSERT腳本重新填充表中的記錄
刪除的記錄還可以恢復嗎?這要視情況而定為了取消對RDBMS中數據執行的操作必須在一個事務上下文中執行所有操作最後要麼提交所有的更改(使之永久化)要麼回滾這些操作(將數據恢復為初始狀態)第章將討論關於事務支持的問題
如果將DELETE語句與之前介紹過的WHERE子句結合就可以使刪除操作具有更多的選擇性要刪除特定的記錄集合只需要在WHERE子句中定義刪除記錄的標准下面的查詢將不加區分地刪除滿足WHERE子句中刪除條件的所有記錄
DELETE FROM myLibrary
WHERE publisher = Wiley;
執行上面的DELETE語句之後將刪除表中所有由Wiley出版社出版的圖書但這也許並不是我們需要的操作如何才能從表中成百上千的記錄中刪除一條特定的記錄呢?這就需要指定一組匹配條件使得滿足所有條件的記錄在表中是唯一的例如下面的例子
DELETE FROM myLibrary
WHERE publisher = Wiley AND pages = ;
這樣的篩選條件一定是唯一的嗎?實際上盡管可能性不大但對於一個較大的數據庫來說存在一條以上的記錄同時滿足以上兩個條件也並非不可能更好的辦法是使用ISBN號因為它是唯一的
DELETE FROM myLibrary
WHERE isbn=;
如果記錄中不存在一個可作為唯一標識的標志又該如何處理呢?有其他幾種辦法可以確保一條記錄在表中的唯一性(請參見第章和第章)但這裡先介紹一個特殊列的概念與其他列相比特殊列的作用是唯一地標識表中的一條記錄也稱為主鍵假如在將記錄輸入到表中時已經對這些記錄進行了編號那麼這些編號就是引用特定記錄的一個簡便的辦法假如特殊列不允許出現重復的編號那麼在刪除單條記錄時就不存在歧義遺憾的是定義這樣的列需要修改表的結構
試一試刪除表中的記錄
下面將刪除Microsoft SQL Server 創建的表中的某些記錄請先重復本章第一個試一試練習中步驟()到步驟()的操作以便為輸入並執行SQL命令做好准備工作
() 下面的查詢將刪除MYLIBRARY表中的所有記錄
USE library;
DELETE myLibrary
( row(s) affected)
() 單擊位於上方工具欄中的Execute按鈕如之前的圖所示
() 重新插入下面的記錄
USE library;
INSERT INTO myLibrary (title author book_language publisher pages author
publish_date isbn)VALUES (SQL BibleAlex KriegelEnglishWiley
Boris M TrukhnovApril )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (Microsoft SQL Server Weekend Crash CourseAlex Kriegel
EnglishWiley October )
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (MindswapRobert Sheckley EnglishOrb BooksMay
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (Jonathan Livingston SeagullRichard Bach EnglishMacMillan
)
INSERT INTO myLibrary(title author book_language publisher pages publish_date
isbn) VALUES (A Short History of Nearly EverythingBill Bryson
EnglishBroadway October )
返回目錄SQL實戰新手入門
編輯推薦
Oracle索引技術
高性能MySQL
數據倉庫與數據挖掘培訓視頻教程
From:http://tw.wingwit.com/Article/program/SQL/201311/16480.html