Web SQL 數據庫 API 并不是 HTML5 規范的一部分,但是它是一個獨立的規范,引入了一組使用 SQL 操作客戶端數據庫的 APIs。
如果你是一個 Web 后端程序員,應該很容易理解 SQL 的操作。
你也可以參考我們的 SQL 教程,了解更多數據庫操作知識。
Web SQL 數據庫可以在最新版的 Safari, Chrome 和 Opera 瀏覽器中工作。
以下是規范中定義的三個核心方法:
openDatabase:這個方法使用現有的數據庫或者新建的數據庫創建一個數據庫對象。transaction:這個方法讓我們能夠控制一個事務,以及基于這種情況執行提交或者回滾。executeSql:這個方法用于執行實際的 SQL 查詢。我們可以使用 openDatabase() 方法來打開已存在的數據庫,如果數據庫不存在,則會創建一個新的數據庫,使用代碼如下:
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);openDatabase() 方法對應的五個參數說明:
數據庫名稱數據庫大小第五個參數,創建回調會在創建數據庫后被調用。
執行查詢操作執行操作使用 database.transaction() 函數:
上面的語句執行后會在 'mydb' 數據庫中創建一個名為 LOGS 的表。
在執行上面的創建表語句后,我們可以插入一些數據:
我們也可以使用動態值來插入數據:
以下實例演示了如何讀取數據庫中已經存在的數據:
以上實例運行結果如下圖所示:

刪除記錄使用的格式如下:
db.transaction(function (tx) { tx.executeSql('DELETE FROM LOGS WHERE id=1');刪除指定的數據id也可以是動態的:
db.transaction(function(tx) { tx.executeSql('DELETE FROM LOGS WHERE id=?', [id]);更新記錄使用的格式如下:
db.transaction(function (tx) { tx.executeSql('UPDATE LOGS SET log=/'www.w3cschool.cc/' WHERE id=2');更新指定的數據id也可以是動態的:
db.transaction(function(tx) { tx.executeSql('UPDATE LOGS SET log=/'www.w3cschool.cc/' WHERE id=?', [id]);var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);var msg; db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)'); tx.executeSql('INSERT INTO LOGS (id, log) VALUES (1, )'); tx.executeSql('INSERT INTO LOGS (id, log) VALUES (2, www.www.survivalescaperooms.com )'); msg = ' p 數據表已創建,且插入了兩條數據。 /p '; document.querySelector('#status').innerHTML = msg; db.transaction(function (tx) { tx.executeSql('DELETE FROM LOGS WHERE id=1'); msg = ' p 刪除 id 為 1 的記錄。 /p '; document.querySelector('#status').innerHTML = msg; db.transaction(function (tx) { tx.executeSql('UPDATE LOGS SET log=/'www.w3cschool.cc/' WHERE id=2'); msg = ' p 更新 id 為 2 的記錄。 /p '; document.querySelector('#status').innerHTML = msg; db.transaction(function (tx) { tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { var len = results.rows.length, i; msg = p 查詢記錄條數: + len + /p ; document.querySelector('#status').innerHTML += msg; for (i = 0; i len; i++){ msg = p b + results.rows.item(i).log + /b /p ; document.querySelector('#status').innerHTML += msg; }, null);以上實例運行結果如下圖所示:

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答