テーブル及び行単位のエクスポート

広告

前のページではデータベース単位でエクスポートする方法を確認しました。今回はphpMyAdminを使ってMySQLのテーブル単位及び行単位でデータをエクスポートする方法について確認します。

1.テーブル単位でのエクスポート
2.行単位でのエクスポート

MySQLサーバに接続後、画面上部にある「データベース」メニューをクリックして下さい。データベースの管理画面が表示されます。

p2-1

データベースリストの中から対象となるテーブルが含まれているデータベース名をクリックして下さい。今回は"personal"データベースをクリックします。

p2-2

選択したデータベースのテーブル管理画面が表示されます。

p2-3

画面上部の「エクスポート」メニューをクリックして下さい。「エクスポート方法」や「フォーマット」を指定する画面が表示されます。

p2-4

「エクスポート方法」はデフォルトでは「簡易 - 最小限のオプションだけ表示」がチェックされていますので「詳細 - 可能なオプションを全て表示」の方をチェックして下さい。すると細かい設定項目が表示されます。

p2-5

設定可能な項目がいくつか表示されますがここでは対象となるテーブルの選択だけを行ないます。

p2-6

エクスポートするテーブルを選択します。全てのテーブルを対象とする場合は全選択を行なって下さい。特定のテーブルをエクスポートしたい場合には対象となるテーブルをクリックして選択して下さい。(Ctrlキーを押しながらクリックすることで複数同時に選択できます)。今回は上図のように"personal"テーブルを対象としました。

「フォーマット」については今回もデフォルトで設定されている「SQL」のままです。それ以外の設定についてもデフォルトのままとしました。では画面一番最後に表示されている「実行する」ボタンを押して下さい。

p2-7

選択したデータベースがエクスポートされファイルとしてダウンロードが行なわれます。任意の場所に保存して下さい。デフォルトの設定ではファイル名は「データベース名.sql」となります。今回の場合であれば「personal.sql」です。これでエクスポートは完了です。

テーブルをエクスポートしたファイルの中身

ではエクスポートしたファイルにどのようなことが記述されているか確認してみます。今回は1つのテーブルを「SQL」フォーマットでエクスポートしています。ダウンロードしたファイルをテキストエディタで開いて下さい。

-- phpMyAdmin SQL Dump
-- version 3.4.7.1
-- http://www.phpmyadmin.net
--
-- ホスト: localhost
-- 生成時間: 2011 年 11 月 29 日 02:05
-- サーバのバージョン: 5.5.9
-- PHP のバージョン: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- データベース: `personal`
--

-- --------------------------------------------------------

--
-- テーブルの構造 `customer`
--

CREATE TABLE IF NOT EXISTS `customer` (
  `id` int(11) NOT NULL,
  `name` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- テーブルのデータをダンプしています `customer`
--

INSERT INTO `customer` (`id`, `name`) VALUES
(1, '株式会社サンプル商事'),
(2, 'サンプル工務店');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

テーブルを作成するためのCREATE TABLE文とテーブルに格納されているデータを挿入するためのINSERT INTO文が記述されています。このように「SQL」フォーマットでエクスポートした場合はデータベースをエクスポートした場合と同じく対象となるテーブルをそのまま復元するためのSQL文が記録されています。

テーブルの行単位でもエクスポートすることが可能です。テーブル管理画面まで戻ってください。

p2-8

テーブルリストの中から対象となる行が含まれているテーブル名をクリックして下さい。今回は"friend"テーブルをクリックします。

p2-9

選択したテーブルに格納されているデータが表示されます。

p2-10

画面上部の「エクスポート」メニューをクリックして下さい。「エクスポート方法」や「フォーマット」を指定する画面が表示されます。

p2-11

「エクスポート方法」はデフォルトでは「簡易 - 最小限のオプションだけ表示」がチェックされていますので「詳細 - 可能なオプションを全て表示」の方をチェックして下さい。すると細かい設定項目が表示されます。

p2-12

設定可能な項目がいくつか表示されますがここでは対象となる行の選択だけを行ないます。

p2-13

全ての行を対象とするか、開始行と行数を指定して一部の行だけを対象とすることができます。今回は開始行が"1"、行数が"2"と指定しました。

p2-14

「フォーマット」については今回もデフォルトで設定されている「SQL」のままです。それ以外の設定についてもデフォルトのままとしました。では画面一番最後に表示されている「実行する」ボタンを押して下さい。

p2-15

選択した行がエクスポートされファイルとしてダウンロードが行なわれます。任意の場所に保存して下さい。デフォルトの設定ではファイル名は「テーブル名.sql」となります。今回の場合であれば「friend.sql」です。これでエクスポートは完了です。

行をエクスポートしたファイルの中身

ではエクスポートしたファイルにどのようなことが記述されているか確認してみます。今回は2行のデータを「SQL」フォーマットでエクスポートしています。ダウンロードしたファイルをテキストエディタで開いて下さい。

-- phpMyAdmin SQL Dump
-- version 3.4.7.1
-- http://www.phpmyadmin.net
--
-- ホスト: localhost
-- 生成時間: 2011 年 11 月 29 日 02:25
-- サーバのバージョン: 5.5.9
-- PHP のバージョン: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- データベース: `personal`
--

-- --------------------------------------------------------

--
-- テーブルの構造 `friend`
--

CREATE TABLE IF NOT EXISTS `friend` (
  `id` int(11) NOT NULL,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- テーブルのデータをダンプしています `friend`
--

INSERT INTO `friend` (`id`, `name`) VALUES
(2, '伊藤'),
(3, '山下');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

テーブルを作成するためのCREATE TABLE文とテーブルに格納されているデータを挿入するためのINSERT INTO文が記述されています。行だけをエクスポートしましたがテーブルについても作成するSQL文が含まれていました(テーブルをエクスポートした場合も同じですが、IF NOT EXISTSは付いています)。その上で指定した開始行から行数文だけのデータが追加するためのSQL文が記録されています。

( Written by Tatsuo Ikura )