Laravel ではバックエンドのデータベースに MySQL や SQL Server, PostgreSQL, SQLite を利用できる.また Laravel は利用するデータベースを .env という設定ファイルで指定するだけで,どのデータベースに接続しているかを利用者が意識することなく Laravel が面倒を見てくれる.
しかしながら,システムの開発中やテスト中にデータベースの中身を直接確認するようなことも考えられる.ここでは,SQLite の操作方法を簡単に説明する.(SQLite で全文検索システムを開発するのは難しいかもしれない.MySQLなどの高機能なDBMSを使えば日本語全文検索システムを開発できる.)
コメント掲示板を作ってみようで開発したシステムのデータベースを直接覗いてみる.データベースは php artisan migrate
を実行した段階で database/database.sqlite ファイルに生成される.また php artisan db:seed
でテストデータが投入されているはずである.
SQLite でデータベースを開くためには,database/ ディレクトリに移動して,sqlite3 データベースファイル名
を実行する.終了するには .exit
を入力する.
[GakuinHana@rin06 myapp]$ pwd ⏎ /home/students/GakuinHana/Documents/laravel/myapp [GakuinHana@rin06 myapp]$ cd database/ ⏎ [GakuinHana@rin06 database]$ ls ⏎ database.sqlite factories migrations seeds [GakuinHana@rin06 database]$ sqlite3 database.sqlite ⏎ SQLite version 3.7.17 2013-05-20 00:56:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .exit ⏎ [GakuinHana@rin06 database]$
SQLite の主なコマンドは次のとおりである.
コマンド | 実行例 | 意味 |
---|---|---|
.help | .help | ヘルプ画面を表示する |
.tables | .tables | テーブルの一覧を表示する |
.schema | .schema | 全てのテーブルの定義を表示する |
.schema テーブル名 | .schema comments | 指定したテーブルの定義を表示する |
.headers ON/OFF | .headers ON | 列名の表示/非表示を切り替える |
.exit | .exit | SQLite を終了する |
実際に,テーブルの一覧とcommentsテーブルの定義を確認して終了させよう.
[GakuinHana@rin06 database]$ ls ⏎ database.sqlite factories migrations seeds [GakuinHana@rin06 database]$ sqlite3 database.sqlite ⏎ SQLite version 3.7.17 2013-05-20 00:56:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables ⏎ comments migrations sqlite> .schema comments ⏎ CREATE TABLE "comments" ( "id" integer not null primary key autoincrement, "title" varchar not null, "body" text not null, "created_at" datetime null, "updated_at" datetime null ); sqlite> .exit ⏎ [GakuinHana@rin06 database]$
SQLの書式は経営学部の講義「データベース」で説明したものがほとんど利用できるはずである.なお,SELECT
等の SQL コマンドは小文字で入力してもかまわない.
[GakuinHana@rin06 database]$ sqlite3 database.sqlite ⏎ SQLite version 3.7.17 2013-05-20 00:56:22 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables ⏎ comments migrations sqlite> SELECT * FROM comments; ⏎ 1|最初のコメント|最初のコメントです!|| 2|2つ目|2つ目のコメントです!|| 3|<三個目>のコメント|シーダによってテストデータを設定します.|| sqlite> SELECT id, title FROM comments ORDER BY id DESC; ⏎ 3|<三個目>のコメント 2|2つ目 1|最初のコメント sqlite> SELECT COUNT(*) AS cnt FROM comments; ⏎ 3 sqlite> SELECT title, body FROM comments WHERE id = 2; ⏎ 2つ目|2つ目のコメントです! sqlite> SELECT * FROM comments WHERE title LIKE "%目%"; ⏎ 2|2つ目|2つ目のコメントです!|| 3|<三個目>のコメント|シーダによってテストデータを設定します.|| sqlite> SELECT * FROM comments WHERE title LIKE "%コメント%"; ⏎ 1|最初のコメント|最初のコメントです!|| 3|<三個目>のコメント|シーダによってテストデータを設定します.|| sqlite> .exit ⏎ [GakuinHana@rin06 database]$