SQLiteの列には、5つの型があります。
ただし、CREATE TABLE で定義する列の型は、”推奨値” であり、指定した型以外の値も登録できるため注意が必要です。
1. 列の型について
次の5つの型があります。
TEXT | 文字列を格納 |
---|---|
NUMERIC | INTEGERもしくはREALの値を格納 |
INTEGER | 整数値を格納 |
REAL | 浮動小数点表現の値を格納(整数値でも強制的に浮動小数点表現にする) |
BLOB | バイナリ値を格納 |
ただし、冒頭に記載したように “推奨値” であり、例えば REAL型の列に文字列を登録することもできます。
2. 検証:全ての列に文字列を登録する
次のような、5つの型をもつテーブル(hoge)を作成します。
1 2 3 4 5 6 7 |
create table hoge ( txt TEXT, num NUMERIC, int INTEGER, real REAL, blob BLOB ); |
次のSQLを実行し、全ての列に文字列を登録します。
1 |
insert into hoge(txt,num,int,real,blob) values('テキスト1','テキスト2','テキスト3','テキスト4','テキスト5'); |
結果
1 2 3 4 |
sqlite> insert into hoge(txt,num,int,real,blob) values('テキスト1','テキスト2','テキスト3','テキスト4','テキスト5'); sqlite> select * from hoge; テキスト1|テキスト2|テキスト3|テキスト4|テキスト5 sqlite> |
登録したデータを SELECT すると、全ての列に文字列が格納されていることが分かります。
他のDBと比較すると違和感を感じますが、列の型は “推奨値” という動作が確認できました。
登録する値の型を厳密に管理したい場合は、アプリケーション側でチェックする必要があります。