(2019-01-21更新)
基本のデーター型
- TEXT テキスト
- NUMERIC 数値
- INTEGER 整数
- REAL 浮動小数点数
- NONE 無指定
データー型を指定してもどのフィールドにもどんな値でも格納できる。 格納時にはなるべく指定された型に変換しようとする。
主キーの付け方
CREATE TABLE table1 ( id INTEGER PRIMARY KEY, ... );
CREATE TABLE table1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, ... );
AUTO INCREMENT
指定による違い
- AUTO INCREMENTなし - 当該列に現在格納されている最大値+1が入る
- 最新行が削除された時→同じ値が使われる
- AUTO INCREMENTあり - 当該列に過去も含めて格納されていた最大値+1が入る
- 最新行が削除された時→新しい値が使われる
参照: AUTOINCREMENTを設定する場合としない場合の違い | SQLite入門
NOT NULL, デフォルト値の付け方
CREATE TABLE table1 ( ... name TEXT NOT NULL, type INTEGER NOT NULL DEFAULT 0 );
日付型は存在せずテキストとして扱われる
日付時刻型が存在しないが、UTC形式のテキスト型で格納される。
テキスト型のフィールドからの出し入れ時に関数を使うことで日付として扱う。
SELECT date('2017-12-05'); --文字列から日付へ SELECT datetime('2017-12-05'); --文字列から日付時刻へ SELECT strftime('%Y-%m', date('2017-12-05')); --文字列から日付へ、それを文字列へ