更新數據UPDATE語句()
() 由於新添加的BOOK_ID列中所有的值都是NULL因此需要更新該列的值刪除查詢窗口中的所有語句重新輸入下面的SQL命令
USE library;
UPDATE myLibrary SET book_id = WHERE isbn=;
UPDATE myLibrary SET book_id = WHERE isbn=;
UPDATE myLibrary SET book_id = WHERE isbn=;
UPDATE myLibrary SET book_id = WHERE isbn=;
() 單擊上方工具欄中的Execute按鈕如圖所示
() 注意觀察下方窗格的Messages選項卡中的條確認消息( row(s) affected)
() 對MYLIBRARY表執行一個SELECT查詢以驗證BOOK_ID列中的數據已經被更新
SELECT book_id isbn FROM myLibrary;
book_id isbn
NULL
() 下面的查詢在一個UPDATE語句中高效地更新了第一條記錄中的所有列
USE library;
UPDATE myLibrary SET
isbn =
pages =
title = Letters From The Earth
author = Mark Twain
author = NULL
publisher = Greenbook Publications LLC
publish_date = June
WHERE book_id = ;
() 再次運行步驟()中的SELECT語句驗證數據的更改
USE library;
SELECT book_id isbn FROM myLibrary;
book_id isbn
NULL
示例說明
在上面的語句中第一個語句指示RDBMS在LIBRARY數據庫的上下文環境中執行命令該語句只需要在會話開始時執行一次即可(關於會話請參見第章)在前面的練習中已經創建了MYLIBRARY表ALTER TABLE命令將向MYLIBRARY表中添加一個數據類型為INTEGER的數值列此時新創建的列僅包含NULL值表示該列中還沒有輸入任何值接下來的幾個UPDATE語句通過在WHERE子句中使用同一個表的ISBN列值作為篩選條件唯一地標識出一條記錄並更新該記錄中的BOOK_ID列如果在UPDATE語句中不使用WHERE子句那麼對於MYLIBRARY表中的所有記錄BOOK_ID列都將被相同的一個值更新
從步驟()的SELECT語句返回的查詢結果中可以看到只有條記錄中的BOOK_ID列具有數據其余記錄中的BOOK_ID列依然保持為空
在步驟()中使用UPDATE語句一列接一列地更新了整條記錄中的數據在LIBRARY數據庫中將該記錄更新為一本完全不同的圖書由於該圖書沒有合著的作者因此使用NULL值來填充AUTHOR列的值以指出該列中沒有任何數據如果省略對AUTHOR列的賦值該列將保持之前的值
在一個多用戶環境中修改數據帶來的問題就是在同一時刻可能會有其他用戶正在讀取或修改數據這引起了很多潛在的數據完整性的問題RDBMS采用多種不同的鎖機制來解決這一問題這些鎖機制將在第章中進行討論但不要過多地使用鎖機制因為它將潛在地減慢數據庫的速度流行的開源數據庫(例如MySQL)為主要用於提供信息服務(即SELECT操作)的數據庫和那些需要實施數據完整性保護的數據庫提供了不同的存儲機制
返回目錄SQL實戰新手入門
編輯推薦
Oracle索引技術
高性能MySQL
數據倉庫與數據挖掘培訓視頻教程
From:http://tw.wingwit.com/Article/program/SQL/201311/16477.html