のぐそんブログ

暗いおじさんがシコシコ書くブログです。

SQLiteのメモ

SQLiteについて

php5にはSQLiteが同梱されている。 DBサーバーの準備など不要でファイル一つで管理できるので簡単。 私のような初心者には手軽で良いです。

SQLiteの特徴

  • 動作が軽い
  • 著作権がない
  • DBサーバーの起動が必要ない
  • ファイルが1つ
  • パスワードがない
  • 同時書き込みができない
  • ローカルにファイルが保存されるので複数のウェブサーバーからアクセスできない

DB Browser for SQLiteについて

SQLiteは基本的にはコマンドラインで操作しますが、「DB Browser for SQLiteというソフトを利用するとGUIから操作できます。
私のようなコマンドラインが辛い人には便利です。

https://sqlitebrowser.org/

DB Browser for SQLiteの使い方

「New Database」ボタンを押す。

/database配下にsqliteファイルを作成する(Laravelの場合)。

テーブルを作成する。
フィールドを追加するには「Add field」を押す。

フィールドの値を設定したら、「Write Change」ボタンを押します。
※フィールドを設定してもファイルには保存されていません。Write Change」を押して保存されます。

ダミーデータを入れてみます。

「Browse Data」タブから先程作ったusersテーブルを選択します。
「New Record」ボタンを押すことでレコードを追加することができます。

「Write Change」ボタンを押して変更を保存します。

フィールドの設定について

キー 内容
NN Not Null。必ず値が入っている必要があります。
PK Primary Key。レコードを特定する為に利用する為に利用します。主にidなどで利用。
AI Auto Increment。自動で値が1ずつ増えていきます。主にidなど自動で設定するのに利用。
U Unique。値がユニークでなる必要があります。

その他

DB Browser for SQLiteでDBの値を変更しても、ブラウザ側の値が変更されない場合があります。
その場合はDB Browser for SQLite「Open Database」で再度sqliteファイルを開き直すと反映されます。

コマンドラインでデータベースを作成/接続してみる

コマンドラインで作成してみます。

sqlite3 {データベース名} でデータベースを接続(作成)する。
※指定のデータベースがない場合は新規で作成される。

// databaseフォルダに移動(Laravelの場合)
cd Laravel_app/databes

// SQLiteを作成
sqlite3 database.sqlite

// 確認
sqlite> .database // /Users/username/Desktop/Laravel_app/database/database.sqlite

設定を表示してみる

SQLite> .show
        echo: off
         eqp: off
     explain: auto
     headers: off
        mode: list
   nullvalue: ""
      output: stdout
colseparator: "|"
rowseparator: "\n"
       stats: off
       width:
    filename: database.sqlite

終了してみる

.exit

テーブルを作ってみる

sqlite> create table users(
    id integer primary key autoincrement,
    name text not null
    mail text,
    age integer
    );

テーブルを確認してみる

sqlite>.tables

schemaを確認してみる

sqlite> .schema {table_name}

テーブルにデータを入れてみる

sqlite> insert into users velues(1,"佐藤太郎")

テーブルのデータを見てみる

sqlite> select * from users;