接続中のデータベースの確認

データベースに接続している時に、現在接続しているデータベース名とそのデータベースが保存されているファイル名を取得するにはSQLiteコマンドの「.databases」を使います。

.databases

では実際に試してみます。「d:\sqlite\db\db1.sqlite3」データベースに接続します。

p4-1

「.databases」と入力します。すると次のように出力されます。

seq  name             file
---  ---------------  ------------------------------------------
0    main             d:\sqlite\db\db1.sqlite3

p4-2

今回は1つしか表示されていませんが、データベースをアタッチしていたりテンポラリデータベースがある場合は複数行表示されます。「seq」は単なる番号です。「name」の値がデータベース名です。そして「file」の値がデータベースが格納されているファイル名です。

データベースに接続すると、そのデータベース名は「main」となります。データベース名としては今までデータベースを格納しているファイル名のことをデータベース名と呼んでいたので分かりにくいですが、「main」はテーブル名やカラム名などと同じくSQL文でデータベース名を指定する必要がある場合に使用される名前です。

コマンドプロンプトから「sqlite3 データベース名」で接続したデータベースに対し、自動的に「main」というデータベース名が割り当てられます。逆にデータベース名が「main」のものが接続しているデータベースです。

アタッチされたデータベースがある場合

では他のデータベースをアタッチしてみます。アタッチについてはここでは解説しませんが、メインのデータベースに他のデータベースを追加して扱う為に使用します。

p4-3

アタッチするデータベースファイル名と、アタッチしたデータベースの名前を指定しています。最初に接続したデータベースのデータベース名は自動的に「main」となりますが、データベースをアタッチする場合はデータベース名を指定します。

では再度「.databases」と入力して下さい。

p4-4

今度は「main」のデータベース以外にアタッチされたデータベースに関しても表示されます。なおアタッチされたデータベースは「seq」が2から順に割り当てられます。「seq」の1はテンポラリデータベースがある場合に割り当てられます。