9
データベース
データベース sqlite3コマンド
この節では、SQLiteデータベースを管理するためのツール「sqlite3」を紹介します。このツールはコマンドライン(コマンドプロンプト)で実行します。「sqlite3」コマンドは全てのAndroid端末に搭載されているため、どのような実機を開発で利用しても使うことができます。もちろんエミュレータにも搭載されています。
sqlite3ツール概要
SQLiteデータベース内のデータを確認する方法の中でもっとも手軽な方法の1つが、sqlite3ツールを使用する方法です。
sqlite3ツールを使用するには、まずコマンドプロンプト上からadb shellコマンドでエミュレータもしくは実機に接続する必要があります。
その後、「/data/data/パッケージ名/databases/」ディレクトリ以下に保存されているデータベースファイル名を指定してsqlite3コマンドを実行するとデータベースに接続します。
C:>adb shell # sqlite3 /data/data/com.example.sqlite3sample/databases/sample.db SQLite version 3.5.9 Enter ".help" for instructions sqlite>
上記例では、com.example.sqlite3sampleパッケージのアプリケーションで作成されたsample.dbデータベースにアクセスしています。
正常に接続できた場合は、プロンプトが「sqlite>」となります。
あとは、SQL文を入力し実行することができます。SQL文は「;」セミコロンまでが1つの命令文となっています。Enterキーを入力したがプロンプトが「->」となりうまくいかない場合は、SQL文の入力が続いていることを表しています。
コラム(文字化けへの対応)
Windowsのコマンドプロンプトは文字コードがSJIS(MS932)であり、一方Androidの文字コードはUTF-8のため、文字化けを起こしてしまうことがあります。たとえば、テーブルの中に日本語のデータが含まれていて、それをSELECTした際などに発生します。
以下の設定を変更することで文字化けを解消することが可能です。
・コマンドプロンプトのプロパティのフォントを「MSゴシック」に設定(1度設定すればよい)
・コマンドプロンプト上で「CHCP 65001」コマンドを実行(毎回実行する必要あり)
これらの設定を行えば、”データを確認する”という用途には十分使うことができます。ただし、完全に文字化けが解消されるわけではありませんので、気になる方は他のツールを使用することを検討してください。
sqlite3ツールのコマンド
sqlite3ツールはSQL文だけでなく、様々なコマンドを実行することができます。利用可能なコマンドは「.help」コマンドを実行することで参照することができます。
代表的なコマンドを紹介します。sqlite3ツールのコマンドはかならず「.」(ピリオド)から始まります。
代表的なコマンドを紹介します。sqlite3ツールのコマンドはかならず「.」(ピリオド)から始まります。
コマンド | 概要 |
---|---|
.database | データベース名を一覧表示する |
.tables | テーブル名を一覧表示する |
.schema | テーブル作成時のCREATE文を表示する |
.dump | データベースの内容を表示する |
.read | ファイルのSQLを実行する |
.output | 実行結果の出力先をファイルに変更する |
.output stdout | 実行結果の出力先を標準出力に変更する(デフォルト) |
.show | 設定値を表示する |
.help | ヘルプを表示する |
.exit | sqlite3を終了する |
データベースのバックアップを取得したい場合は、下記のように行うことが可能です。
sqlite> .output /data/data/com.example.sqlite3sample/databases/dump.sql sqlite> .dump