SQLite 3 のフィールド型
テーブル作成時 (CREATE TABLE
) に指定したフィールド定義に含まれているテキストにより、以下のようにフィールド型が決定されます。
- INTEGER 型:
INT
という文字列を含む場合。 - TEXT 型:
CHAR
、CLOB
、TEXT
を含む場合。 - NONE 型:
BLOB
を含む型、あるいはデータ型が特定されない場合。 - NUMERIC 型: それ以外の場合。
テーブルが存在しない場合だけテーブルを作成する (IF NOT EXISTS)
逆に、テーブルが存在する場合だけテーブルを削除するということもできます。
この場合は、IF NOT EXISTS
の代わりに、IF EXISTS
を使用します。
NULL の追加を禁止する (NOT NULL)
フィールドの定義時に、NOT NULL
というフィールド制約を加えておくと、データ追加時にそのフィールドの値を省略できないようになります。
同じ値の入力を禁止する (UNIQUE)
フィールドの定義時に、UNIQUE
というフィールド制約を加えることで、別のレコードに入っている値と同じ値を追加できないようになります。
自動的に連番を振る (INTEGER PRIMARY KEY)
フィールドの定義で、INTEGER PRIMARY KEY
を指定しておくと、データ追加時にそのフィールドの値を指定しなかった場合に、自動的に連番を振ってくれます。
自動的に日付・時刻を格納する (DEFAULT CURRENT_TIMESTAMP)
フィールドの定義に日時関連の DEFAULT
制約を設定しておくと、データの追加時にそのフィールドに何も指定しない場合に現在の日時をセットしてくれます。
- DEFAULT CURRENT_DATE: 現在の日付 (2010-08-21)
- DEFAULT CURRENT_TIME: 現在の時刻 (14:30:56)
- DEFAULT CURRENT_TIMESTAMP: 現在の日時 (2010-08-21 14:30:56)
上記の日時は、UTC で格納されるので、実際にこの値を取得してローカルタイムで表示する場合は、時差などを考慮して時刻を表示する必要があります。