データベースをSQL文形式でエクスポート/インポート

SQLiteではデータベースに作成されているテーブル構造やテーブルに格納されているデータをSQL文の形でエクスポートする機能と、その出力されたデータをインポートして元のデータベースと同じものを作成する機能が用意されています。ここではDB Browser for SQLiteからデータベースをSQL文形式でエクスポートしたりインポートする方法について解説します。

(2022 年 04 月 05 日公開 / 2022 年 04 月 05 日更新)

データベースをSQL文の形でエクスポート

まずはデータベースをSQL文の形でエクスポートしてみます(SQLiteではダンプコマンドで同じことができます)。対象となるデータベースに接続して下さい。

p1-1

このデータベースには自動で作成された「sqlite_sequence」テーブルを除いて2つのテーブルが作成されています。

p1-2

テーブルにはそれぞれいくつかのデータが格納されています。

p1-3

それではこのデータベースをエクスポートします。「File」メニューの中の「Export」メニューの中にある「Database to SQL file...」メニューをクリックして下さい。

p1-4

ファイルダイアログが表示されますのでファイルの保存先のディレクトリとファイル名を指定して下さい。ファイルはテキストファイルで保存されます。拡張子の指定は無いと思いますが今回は「.sql」という拡張子を使って次のように指定しました。

p1-5

正常に終了すれば次のようなダイアログが表示されます。

p1-6

先ほどファイルの保存先として指定したディレクトリを見てみると、指定したファイル名でファイルが作成されていることが確認できます。

p1-7

このファイルはテキストファイルですのでテキストエディタで開いて見ることができます。今回は次のようなファイルとなっていました。

BEGIN TRANSACTION;
CREATE TABLE `sectiondb` (
 `id` INTEGER,
 `section` INTEGER
);
INSERT INTO `sectiondb` VALUES ('1','高校以前');
INSERT INTO `sectiondb` VALUES ('2','大学時代');
INSERT INTO `sectiondb` VALUES ('3','会社関係');
CREATE TABLE `friendlist` (
 `id` INTEGER PRIMARY KEY AUTOINCREMENT,
 `name` TEXT NOT NULL,
 `old` INTEGER,
 `address` TEXT
);
INSERT INTO `friendlist` VALUES ('1','山田太郎','19','東京都');
INSERT INTO `friendlist` VALUES ('2','加藤二郎','34','北海道');
INSERT INTO `friendlist` VALUES ('3','高橋花子','23','東京都');
INSERT INTO `friendlist` VALUES ('4','本田健一','27','愛知県');
INSERT INTO `friendlist` VALUES ('5','山崎博美','22','千葉県');
COMMIT;

元々のデータベースで作成されていたテーブルと同じテーブルを作成するCREATE TABLE文が記述されています。またテーブルに格納されていたのと同じデータをテーブルに格納できるようにINSERT文も記述されています。

このSQL文を順に実行していけば元のデータベースとまったく同じデータベースが作成できます。このようにダンプを行うことでデータベースの構造とそこに格納されているデータなどをSQL文の形で書きだすことができます。

SQL文のデータをインポート

先ほどエクスポートしたファイルをインポートすることで、元のデータベースと同じ構成とデータを持った新しいデータベースを作成することができます。データをインポートするには「File」メニューの中の「Import」メニューの中にある「Databe from SQL file...」メニューをクリックして下さい。

p1-8

ファイルダイアログが表示されますので、インポートするファイルを指定して下さい。

p1-9

次のようなダイアログが表示されます。

p1-10

インポートするデータベースのデータを使って新しいデータベースを作成する場合は「Yes」をクリック、現在開いているデータベースに追加する場合は「No」をクリックします。今回は「Yes」をクリックしました。(なお色々なパターンで「No」を選択してみましたが、どれもエラーになりました。原因は不明です)。

ファイルダイアログが表示されますので、新しく作成するデータベースの保存先ディレクトリとファイル名を指定して下さい(通常の新規データベースを作成する時と同じです)。指定が終わりましたら「保存」ボタンをクリックして下さい。

p1-11

次のようなダイアログが表示されればインポートは完了です。

p1-12

自動的に新しく作成されたデータベースに接続した状態となります。作成されたデータベースが元のデータベースと構造や格納されているデータが同じであることを確認されてみて下さい。

p1-13

p1-14

----

データベースをSQL文の形で出力すると、データベースのバックアップとしても利用できますし、MySQLなど異なるデータベースへ移行する場合などにも利用できるかもしれません。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。