SELECT sqlite_master テーブルを使ってデータベース名を一覧表示する方法
SQLite3で.databasesコマンドを使ってデータベース名を一覧表示する方法
SQLite3は、軽量で使いやすいオープンソースのデータベースエンジンです。コマンドラインツールであるsqlite3を使って、データベースの作成、読み込み、クエリ実行、データベース名の表示などを行うことができます。
この解説では、.databasesコマンドを使ってSQLite3データベースの一覧を表示する方法について説明します。
手順
- コマンドプロンプトまたはターミナルを開きます。
sqlite3
コマンドを実行します。- データベースファイルが存在するディレクトリに移動します。
.databases
コマンドを実行します。
例
# コマンドプロンプトを開く
cd C:\sqlite\databases
# sqlite3コマンドを実行
sqlite3
# .databasesコマンドを実行
.databases
出力結果
main
test.db
解説
.databases
コマンドは、現在のディレクトリにあるすべてのSQLite3データベースの名前を表示します。- データベースファイルは、拡張子
.sqlite
または.db
を持つファイルです。 main
という名前のデータベースは、SQLite3でデフォルトで作成されるデータベースです。
補足
- 特定のディレクトリにあるデータベースの一覧を表示するには、
cd
コマンドを使ってそのディレクトリに移動してから.databases
コマンドを実行します。 - ワイルドカードを使って、特定の名前を持つデータベースを検索することもできます。例えば、
*.db
というコマンドを実行すると、拡張子が.db
であるすべてのデータベースが表示されます。
- .databasesコマンドは、SQLite3のバージョン3.7.11以降で利用可能です。
- 複数のデータベースを同時に開いている場合は、
.databases
コマンドを実行すると、開いているすべてのデータベースの名前が表示されます。
# コマンドプロンプトまたはターミナルを開く
cd C:\sqlite\databases
# sqlite3コマンドを実行
sqlite3
# データベースファイルが存在するディレクトリに移動
cd C:\sqlite\databases
# .databasesコマンドを実行
.databases
# 特定の名前を持つデータベースを検索
*.db
# 特定のディレクトリにあるデータベースの一覧を表示
cd C:\sqlite\other_databases
.databases
main
test.db
# 特定の名前を持つデータベースを検索
other_database.db
# 特定のディレクトリにあるデータベースの一覧を表示
other_database.db
SQLite3でデータベース名を一覧表示する他の方法
ファイルエクスプローラーを使う
最も簡単な方法は、ファイルエクスプローラーを使ってデータベースファイルを探すことです。SQLite3データベースファイルは、拡張子.sqlite
または.db
を持つファイルです。
SELECT sqlite_master テーブルを使う
SQLite3データベースに接続している場合は、次のSQLクエリを実行して、データベース内のすべてのテーブルの名前を取得できます。
SELECT name
FROM sqlite_master
WHERE type='table';
このクエリは、sqlite_master
テーブルからname
列の値をすべて返します。sqlite_master
テーブルには、データベース内のすべてのテーブル、ビュー、インデックスに関する情報が含まれています。
PRAGMA database_list コマンドを使う
次のPRAGMAコマンドを実行して、接続しているデータベース内のすべてのデータベースの名前を取得できます。
PRAGMA database_list;
このコマンドは、database_list
という名前の仮想テーブルを作成します。このテーブルには、接続しているデータベース内のすべてのデータベースの名前とその他の情報が含まれています。
シェルスクリプトを使って、現在のディレクトリにあるすべてのSQLite3データベースの名前を一覧表示することもできます。
#!/bin/bash
for file in *.sqlite *.db; do
echo "$file"
done
このスクリプトは、現在のディレクトリにあるすべてのファイル名を確認し、拡張子が.sqlite
または.db
であるファイルをすべて表示します。
.databasesコマンド以外にも、SQLite3でデータベース名を一覧表示する方法はいくつかあります。自分に合った方法を選んで使用してください。
sqlite