Latest web development tutorials
×

HTML コース

HTML コース HTML 簡単な紹介 HTML エディタ HTML ファウンデーション HTML 要素 HTML プロパティ HTML 見出し HTML 段落 HTML テキストの書式設定 HTML リンク HTML ヘッド HTML CSS HTML 画像 HTML テーブル HTML リスト HTML ブロック HTML レイアウト HTML フォーム HTML フレーム HTML カラー HTML 色名 HTML カラー値 HTML スクリプト HTML 文字エンティティ HTML URL HTML クイックリスト HTML サマリー XHTML入門

HTML5

HTML5 コース HTML5 ブラウザのサポート HTML5 新要素 HTML5 Canvas HTML5 インライン SVG HTML5 MathML HTML5 ドラッグ・アンド・ドロップ HTML5 地理的な位置 HTML5 ビデオ(Video) HTML5 可聴周波数(Audio) HTML5 Input タイプ HTML5 フォーム要素 HTML5 フォームのプロパティ HTML5 セマンティック要素 HTML5 Web メモリ HTML5 Web SQL HTML5 アプリケーションキャッシュ HTML5 Web Workers HTML5 SSE HTML5 WebSocket HTML5 クイズ HTML(5)コードの仕様

HTML メディア

HTML メディア(Media) HTML ウィジェット HTML 可聴周波数(Audio) HTML ビデオプレーヤー(Videos) HTML 例

HTML リファレンスマニュアル

HTML タグリスト(アルファベット順に) HTML タグリスト(ソート機能) HTML プロパティ HTML イベント HTML キャンバス HTML 可聴周波数/ビデオ HTML 効果的な DOCTYPES HTML 色名 HTML カラーピッカー HTML 文字セット HTML ASCII HTML ISO-8859-1 HTML シンボル HTML URL コーディング HTML 言語コード HTTP ニュース HTTP ウェイ キーボードショートカット

HTML5のWeb SQLデータベース

ウェブSQLデータベースAPIは、HTML5仕様の一部ではありませんが、それは、独立した仕様であるSQL操作クライアントデータベースを使用するためのAPIのセットを導入しました。

あなたは、Webプログラマ後端している場合は、SQL操作を理解することが容易であるべきです。

また、私たちを参照することができますSQLのチュートリアルより多くの知識のデータベース操作を学習します。

ウェブSQLデータベースは、サファリ、ChromeとOperaブラウザの最新バージョンで動作することができます。


コアの方法

以下は、仕様で定義された3つのコアメソッドです:

  1. OpenDatabaseメソッド:このメソッドは、既存のデータベースを使用するか、または新しいデータベース・オブジェクト・データベースを作成します。
  2. トランザクション:このメソッドは、私たちは、トランザクションを制御することができ、この場合に基づいてコミットまたはロールバックします。
  3. ExecuteSQL:この方法は、実際のSQLクエリを実行するために使用されます。

データベースを開きます

データベースが存在しない場合、私たちは、次のコードを使用し、新しいデータベースを作成し、既存のデータベースを開くために、OpenDatabaseメソッド()メソッドを使用することができます。

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

記述に対応する5つのパラメータのOpenDatabaseメソッド()メソッド:

  1. データベースの名前
  2. バージョン番号
  3. 説明テキスト
  4. データベースのサイズ
  5. コールバックを作成します。

5番目のパラメータ、コールバックを作成するには、データベースを作成した後に呼び出されます。


クエリ操作を実行します

実行はdatabase.transaction()関数を使用しています。

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {  
   tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
});

上記の文は、実行後に「MYDB」データベース内のテーブルという名前のログが作成されます。


データを挿入

テーブルを作成するために、上記のステートメントを実行した後、我々はいくつかのデータを挿入することができます。

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
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.w3big.com")');
});

また、データを挿入するために動的な値を使用することができます。

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {  
  tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, log)');
  tx.executeSql('INSERT INTO LOGS 
                        (id,log) VALUES (?, ?'), [e_id, e_log];
});

インスタンスはe_logと外部変数、は、ExecuteSQL配列パラメータは、各エントリにマッピングされているE_ID「?。」


データを読みます

次の例では、データベースに既にデータを読み取る方法を示しています。

var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

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.w3big.com")');
});

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++){
         alert(results.rows.item(i).log );
      }
	
   }, null);
});

完全な例

<!DOCTYPE HTML>
<html>

   <head>
	
      <script type="text/javascript">
		
         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.w3big.com")');
            msg = '<p>数据表已创建,且插入了两条数据。</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);
         });
			
      </script>
		
   </head>
	
   <body>
      <div id="status" name="status">状态信息</div>
   </body>
	
</html>

»をお試しください

上記の動作の結果の例を以下に示すとおり


レコードを削除します

フォーマットは、レコードを削除する次のとおりです。

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]);
});

完全な例

<!DOCTYPE HTML>
<html>
   <head>
      <meta charset="UTF-8">  
      <script type="text/javascript">
      
         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.w3big.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);
         });
         
      </script>
      
   </head>
   
   <body>
      <div id="status" name="status">状态信息</div>
   </body>
   
</html>

»をお試しください

上記の動作の結果の例を以下に示すとおり