LoginSignup
35
29

More than 5 years have passed since last update.

SQLite3メモ

Posted at

SQLite3メモ

MySQLのお守りに疲れてきたので最近はSQLiteに浮気しています。
ずいぶん独特な考え方のDBMSだったので、忘れないようにメモ。

データ型

SQLiteのデータ型は5種類しかない。

NULL, INTEGER(整数), REAL(浮動小数点), TEXT(文字列), BLOB(バイナリ)

カラムの型

テーブルを作成するときのカラムには型を指定しなくても良い。

CREATE TABLE test(id, name, comment, created_at);

指定しないとどんな型でも自由に入る。他のDBMSとの互換性を考えて型は指定したほうが良いが、あくまで気休め程度で、「VARCHAR(255)」型でも255文字以上入るし、「INTEGER」型に文字列を挿入することもできる。

互換性を考えた例
CREATE TABLE test(
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  name VARCHAR(255) NOT NULL,
  comment TEXT,
  created_at TIMESTAMP DEFAULT (DATETIME('now','localtime'))
);

「AUTOINCREMENT」を付加すると連番になる。

「DEFAULT (DATETIME('now','localtime'))」を付加するとデフォルト値として現在時刻が挿入される。「DEFAULT CURRENT_TIMESTAMP」でも良いがUTC時刻になるので使いにくい。

35
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
29