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