SQLiteの初歩の初歩

提供: SmileLogicWiki

目次

SQLiteとは!?

SQLiteはMySQLなどと同じリレーショナルデータベース。ですが、デーモンで動作するわけではなく、単独のアプリケーションで動作します。インストールも非常に簡単でコンパクトなので、結構いろいろなアプリケーションのベースで使われています。(Windows/Mac OS X/Linuxに関わらず)

インストール

Linux

普通はパッケージにあります。そこからインストールするのが楽です。Ubuntuの場合、apt-get install sqlite3です。自分は、PHPのPDOで使いたかったので、apt-get install php5-sqliteもしました。

Windows

http://www.dbonline.jp/sqliteinstall/ 参考にどうぞ。

コマンドライン

シェルからコマンドで実行できます。

$ sqlite3 hoge.sq3
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .show
    echo: off
 explain: off
 headers: off
    mode: list
nullvalue: ""
  output: stdout
separator: "|"
   width:
sqlite>

hoge.sq3が、SQLiteのデータベースファイル(1ファイルのみ)となります。まだ、createもしていないので、.exitしてもファイル(0byte)の空ファイルが作られるだけです。

SQLiteの特徴

  • SQLite3ではテーブルを定義する時にカラム毎にデータ型を指定しなくても構いません。その為、同じカラムに異なったデータ型の値が格納されることもあります。 正直、これはいけていないと思うので、データ型は指定した方が良い。
  • SQLite3でカラムに指定できるデータ型は「TEXT」「NUMERIC」「INTEGER」「REAL」「NONE」の5つです。
    • TEXT型のカラムにINTEGERやREALのデータ型の値が格納された場合、TEXT型に変換されてから格納されます。
    • NUMERIC型のカラムにTEXT型の値が格納された場合、INTEGER型またはREAL型に変換を試みます。成功すればそのデータ型で格納されますが、失敗すればTEXT型のまま格納されます。
    • INTEGER型のカラムに整数として表せるREAL型の値(例えば34.0など)、又は同じ形式のTEXT型の値が格納された場合、INTEGER型に変換して格納します。
    • REAL型のカラムにINTEGERの値が格納された場合、REAL型に変換して格納します。
    • NONE型のカラムの場合は変換は行われません。

ちょっと、PHP的!? >自動型変換。でも、これは混乱の元なので、プログラムするサイドで、「このカラムには、この型だ!」って管理した方があとあと楽。

個人用ツール