Laravel ではバックエンドのデータベースに MySQL や SQL Serve, PostgraSQL, SQLite などさまざまなデータベース管理システム (DataBase Management System: DBMS) を利用できます.どのデータベース管理システムを利用するかという設定は .env という設定ファイルに記載します.これによりどのデータベースに接続しているかを利用者が意識することなく,Laravel が細かな面倒を見てくれます.なお,データベースサービスに関する詳細な設定は config/database.php 設定ファイルにあります.
しかしながら,システムの開発中やテスト中にデータベースのテーブルに格納されたデータを直接確認する必要性が生じる事も少なくありません.ここでは,SQLite の操作方法を簡潔に説明します.なお SQLite で全文検索システムを開発することは難しいかもしれません.MySQL などの高機能な DBMS を使えば日本語全文検索システムも開発できます.
途中まで開発が進んでいる comment_app プロジェクトのデータベースを直接覗いてみよう.データベースのテーブルは php artisan migrate
コマンドを実行した段階で database/database.sqlite ファイルに生成されています.また,php artisan db:seed
コマンドによってテストデータがテーブルに投入されているはずです.
SQLite でデータベースを開くには,database ディレクトリに移動して sqlite3 データベースファイル名
コマンドを実行します.データベースへの接続を終了するには .exit
を入力します.
vagrant@ubuntu2204 comment_app $ pwd ⏎ /home/vagrant/Documents/laravel/comment_app vagrant@ubuntu2204 comment_app $ ls ⏎ README.md bootstrap config phpunit.xml routes vendor app composer.json database public storage vite.config.js artisan composer.lock package.json resources tests vagrant@ubuntu2204 comment_app $ cd database/ ⏎ vagrant@ubuntu2204 database $ ls ⏎ database.sqlite factories migrations seeders vagrant@ubuntu2204 database $ sqlite3 database.sqlite ⏎ SQLite version 3.38.2 2022-03-26 13:51:10 Enter ".help" for usage hints. sqlite> .exit ⏎ vagrant@ubuntu2204 database $
SQLite の主なコマンドは次のとおりです.
コマンド | 実行例 | 意味 |
---|---|---|
.help | .help | ヘルプ画面を表示する |
.tables | .tables | テーブルの一覧を表示する |
.schema | .schema | 全てのテーブルの定義を表示する |
.schema テーブル名 | .schema comments | 指定したテーブルの定義を表示する |
.headers ON/OFF | .headers ON | 列名の表示/非表示を切り替える |
.exit | .exit | SQLite を終了する |
実際にテーブルの一覧を確認して,comments テーブルの定義を確認してから終了させよう.
vagrant@ubuntu2204 database $ ls ⏎ database.sqlite factories migrations seeders vagrant@ubuntu2204 database $ sqlite3 database.sqlite ⏎ SQLite version 3.38.2 2022-03-26 13:51:10 Enter ".help" for usage hints. sqlite> .tables ⏎ comments migrations personal_access_tokens failed_jobs password_reset_tokens users sqlite> .schema comments ⏎ CREATE TABLE IF NOT EXISTS "comments" ( "id" integer primary key autoincrement not null, "title" varchar not null, "body" text not null, "created_at" datetime, "updated_at" datetime ); sqlite> .exit ⏎ vagrant@ubuntu2204 database $
SQL の書式は神戸学院大学経営学部の講義「データベース」で説明したものがほとんど利用できるはずです.なお,SELECT
等の SQL コマンドは小文字で入力しても構いません.
vagrant@ubuntu2204 database $ sqlite3 database.sqlite ⏎ SQLite version 3.38.2 2022-03-26 13:51:10 Enter ".help" for usage hints. sqlite> .tables ⏎ comments migrations personal_access_tokens failed_jobs password_reset_tokens users sqlite> SELECT * FROM comments; ⏎ 1|最初のコメント|最初のコメントです!|| 2|2つ目|2つ目のコメントです!|| 3|<三個目>のコメント|シーダによってテストデータを設定します.|| sqlite> .headers on ⏎ sqlite> SELECT * FROM comments; ⏎ id|title|body|created_at|updated_at 1|最初のコメント|最初のコメントです!|| 2|2つ目|2つ目のコメントです!|| 3|<三個目>のコメント|シーダによってテストデータを設定します.|| sqlite> SELECT id, title FROM comments ORDER BY id DESC; ⏎ id|title 3|<三個目>のコメント 2|2つ目 1|最初のコメント sqlite> SELECT COUNT(*) AS cnt FROM comments; ⏎ cnt 3 sqlite> SELECT title, body FROM comments WHERE id = 2; ⏎ title|body 2つ目|2つ目のコメントです! sqlite> SELECT * FROM comments WHERE title LIKE "%目%"; ⏎ id|title|body|created_at|updated_at 2|2つ目|2つ目のコメントです!|| 3|<三個目>のコメント|シーダによってテストデータを設定します.|| sqlite> SELECT * FROM comments WHERE title LIKE "%コメント%"; ⏎ id|title|body|created_at|updated_at 1|最初のコメント|最初のコメントです!|| 3|<三個目>のコメント|シーダによってテストデータを設定します.|| sqlite> .exit ⏎ vagrant@ubuntu2204 database $