Mono Works

チラシのすきま

SQLite” タグのついた記事一覧
  • 前回は、SQLiteのDatatypesについてメモを残しました。そのメモの中に非常に「SQLite」らしい特徴があります。こちらの「データベースの各column(列)に割当可能な5つのType Affinity」です。

    TEXT affinity: NULL、TEXT、BLOBクラスの値を格納可能。数値を格納する場合、文字列に変換して格納。

    NUMERIC affinity: 全クラスの値を格納可能。TEXTクラスの値を格納する場合、INTEGERか REALクラスへの変換を試み、変換できれば変換して格納。変換できなければTEXTクラスのまま格納。NULL、BLOBクラスの値は、変換せずに格納。

    INTEGER affinity: 基本的にNUMERIC affinityと同じ動作ですが、CAST expressionsの場合のみ違う動作となります。

    REAL affinity: 基本的にNUMERIC affinityと同じ動作ですが、整数形式の値の場合、小数点クラスにして格納します。

    BLOB(かつての名称はNONE)affinity: どんなタイプの値でも変換せずに格納します。

    さらっと流していましたが、NUMERIC、INTEGER、REALは、自分のクラスへの変換を推奨しますが、変換できなくても、そのまんま格納してしまいます。いちおう「数値型で入れてね」とお願いはするのですが、数値に変換できない文字列を放り込めば、そのまま保存してしまいます。

    さらにBLOBに至っては、とりあえず何でもそのまま格納しちゃいます。こんな感じなので、SQLiteで実際にDBを作成する場合、何も決めないまま、とりあえず作成できてしまいます。

    そんなSQLiteでも、他のRDBMS同様にDB作成時の制約を設けることはできます。今回は、その制約周りについてざっくりとメモ。

  • 前回、Androidで標準サポートされている「SQLite」に準じたデータベース(以下、DB)を作成するツールを紹介しました。SQLiteのDB作成方法自体は、前回書いたようにとても簡単ですが、その簡単さはSQLite独特のルールによって成り立っているようです。今回は、そのSQLiteのもつ独特なあれこれについて、メモを残しておきます。

    androiddevmemo20150928_00

    本題の前に、SQLiteのバージョンについて書いておきます。SQLiteのバージョンは、大きく2と3に分かれていて、2と3では互換性がないようです。古いシステムで2が採用されているような場合を除いて、3を使うのがよさそうです。(現時点での最新版は、3.8.11.1)以降、SQLiteに関するメモは、SQLite3について記載していきます。

  • Androidも、データベースを扱うことができます。標準でサポートされているデータベースは「SQLite」というオープンソースのRDBMSです。データの保管場所としてサーバを必要とせず、データをファイルとして保存することから、アプリに組み込んで利用されることが多いようです。なお、標準ではサポートされていませんが、Microsoft SQL ServerなどのようなサーバーベースのRDBMSにもAndroidからアクセスは可能です。

    androiddevmemo20150928_00

    今目標としていることは、Androidアプリに一定のデータを持たせておき、そのデータを条件に応じて画面に表示させることです。なので、データベースをAndroidで作成したり、更新することはなく、あらかじめパソコンでデータベースを作成して、アプリに組み込みできればと考えています。今回は、表示の元になるデータベースをパソコンで作るところをメモします。

執筆者
"ぽぽろんち" @pporoch
pporoch120
Mono Worksの中の人。好きなことをつらつらと書き留めてます。
ギターを始めてから 練習動画をYouTubeにアップしてます。ご笑納ください。
"DQX@ぬここ(UD487-754)、コツメ(NO078-818)"
採用案内