AndroidでSQLLiteを使う。

  • カラム「_id」を主キーとして各テーブルに追加すること。【絶対に必要なわけではない)
  • アプリケーションの終了時にDBをクローズしたほうが良い。クローズは省略しても、一応大丈夫ではある。
  • エミュレータで実行した場合にdbファイルはPC側に作成される。端末の場合は当然端末側にしかdbファイルは作成されないので注意。
  • ヘルパークラスのonCreateメソッド内で、テーブル生成とデータ投入を行う必要がある。
  • データ投入は、小規模であれば、ソースコードにそのまま記述したほうが早い。一応、dbファイルをコピーしたり、dumpコピーという方法もある。
  • アップグレードの処理でテーブルの作り直しが可能。テーブルの削除、新規作成、データ投入のコードを、onUpgradeメソッド内に記述。
  • dbファイルを削除するには、アンインストールすること。EclipseのDDMSパースペクティブから削除しないように注意。

SQLiteの型

説明
INTEGER整数(8Byte)
REAL浮動小数点(8Byte)
TEXTテキスト。文字コードはUTF8
BLOBバイナリ
NULLNULL

テーブル生成SQLの例
create table TestTbl(Id INTEGER not null primary key ,TestName TEXT,TestValue INTEGER,TestFloat REAL);

SELECTの例
SELECT Id,TestName FROM TestTbl WHERE Id=1;

INSERTの例
INSERT INTO TestTbl VALUES(1, 'neko',100,3.14);

UPDATEの例
UPDATE TestTbl SET TestName = 'yagi', TestValue= 200,TestFloat=1.7320508 WHERE Id=1;

DELETEの例
DELETE FROM TestTbl WHERE Id=2;

内部結合の例
select * from PetTbl inner join TestTbl on PetTbl.PetId = TestTbl.Id;

外部結合の例(左部結合)
select * from PetTbl left outer join TestTbl on PetTbl.PetId = TestTbl.Id;
※右外部結合、Full外部結合は現在サポートされておらず 2013年

テーブル存在チェック
SELECT COUNT(*) AS Pre FROM sqlite_master WHERE type='table' AND name='テーブル名';




dbファイルの場所

以下の手順でsqliteファイルを取得可能。(エミュレータのみ)
  1. Eclipseおよび、Androidエミュレータを起動しておく。
  2. EclipseのDDMSパースペクティブを開く。(DDMSは画面右上にある)
  3. File Explorerタブからdata→data→アプリ名→databaseとたどるとdbファイルを確認できる。
  4. dbファイルはそのままでは開けないが、右上の「左矢印アイコン」でdbファイルをダウンロードできる。
  5. ダウンロードしたdbファイルは、フリーツールやODBCを通して確認可能。



参考リンク

参考サイト1
  • データベース操作サンプルの画面構成とスキーマ
  • Androidのデータベースを作成するには?
  • トランザクションとプリコンパイルステートメントとは?(効率のよいINSERT)
  • ロールバック
  • データベースの保存場所はメモリ? ストレージ?
  • データベースの保存場所を指定するには?

参考サイト2
  • データベースの削除はエミュレータのManage Applicationsから行おう
  • 検索はSQL文でも繰り返しバインドでも