SQLiteのデータ型についてまとめておく。
SQLiteには、格納される値のデータ型とカラムのデータ型の2つが存在する。
多くのデータベースではカラムごとにデータ型を指定するため、格納できる値が決まっている。
しかし、SQLite3 ではテーブル作成時にカラムごとにデータ型を指定しなくてもよいため、カラムには色々な型の値が格納される。
格納される値のデータ型
データ型を指定しなかった場合、カラムに格納された値を以下のデータ型で区別している。
データ型 | 説明 |
---|---|
INTEGER | 符号付整数。自動選択か、1, 2, 4, 8バイトで格納 |
REAL | 浮動小数点数。8バイトで格納 |
TEXT | テキスト。UTF-8, UTF-16BE, UTF-16-LEのいずれかで格納 |
BLOB | Binary Large OBject。入力データをそのまま格納 |
NULL | NULL値 |
カラムのデータ型
SQLite3において、カラムに指定できる型は以下である。
また、格納される値のデータ型によっては型変換されてから格納される。
データ型 | 説明 |
---|---|
INTEGER | 整数で表されるREALやTEXTの場合、INTEGERに変換される |
REAL | 浮動小数点数で表せる場合、REALに変換される |
TEXT | 数値型(INTEGER、REAL)の場合、TEXTに変換される |
BLOB | 変換しない |
NUMERIC | TEXT型の場合、INTEGERかREALに変換される 変換失敗の場合はTEXTのまま |