2009年4月1日水曜日

MySQL を GUI で操作するツール - テーブルの定義、ERD の確認、SQL の実行

1. 昔使っていた MySQL を操作するためのツール

XAMPP をインストールしたものの、長い間放置していた。久しぶりに MySQL をいじってみる。

全ての操作をコマンドラインで操作するのはきつい。そのため、MySQL Administrator でテーブルを作成し、SQL を実行する。しかし、最近 Access を触っていたので、お手軽・グラフィカルにテーブルを定義して外部キーを設定できないと面倒。 (+_+)

で紹介されいる、どのツールを利用するのがベストなのだろう?

昔、使っていたツールは、

  1. SQL を実行するときには Execute Query
  2. テーブルの全体構造を把握したいときは DbVisualizer

今では Execute Query も ERD を生成してくれる。ERD の表示に関しては DbVisualizer の方がお手軽みたい。

 

2. MySQL Workbench でテーブルの作成と ERD の生成

以前、 MySQL で使えるツールを調べたときは、DBDesigner 4 を利用しようと考えた。しかし、このツールの開発は停止している。

fabFORCE.net によると、

MySQL Workbench 5.0 has been developed by the Developer Tools Team of Sun Microsystems, Database Group. The team is lead by fabFORCE.net founder and DBDesigner4 implementor Michael G. Zinner, aiming to offer an improved database tooling experience for all platforms.

本家の MySQL Workbench は、DBDesigner4 を開発した人が関わっている。早速、MySQL Workbench Downloads よりダウンロードしてインストール。

Chapter 4. MySQL Workbench Tutorials を読みながら試行錯誤。

ただし、15 Reverse Engineering によると、

Reverse engineering using a MySQL DDL script applies to all versions of MySQL Workbench; reverse engineering a database directly from a MySQL server applies to commercial versions of MySQL Workbench only.

DDL を出力してくれるけれど、商用バージョンの MySQL でないとダイレクトに扱えないのが残念。(@_@;)

 

データモデリング

追記 (2010.10.3) : MySQL Workbench を使うと、グラフィカルにデータモデリングを行うことができる。(5.2.28 CE Revision 6722)

img10-03-20101

予めテスト用のデータベースを作成しておく。

  1. “SQL Development" の New Connection でデータベースに接続。
  2. テスト用のスキーマを作成。

設定できたら、

  1. “Data Modelling” の Create EER Model From Existing Database により、テスト用のデータベースの内容をリバースエンジニアリング。
  2. テーブルの内容を修正しては、メニューより 「Database > Synchronize Model…」で変更を反映させる。

img10-03-20103

 

3. ODBC 経由でデータベースにデータを挿入

上記 MySQL Workbench にはテーブルの内容を入力したり、修正するためのインターフェイスがある。( SQL Development > Edit Table Data )

img10-03-20101

しかし、表計算ソフトのデータをコピーして貼り付けるということはできないようだ。この目的のために他のツールを探すことに。

 

SQL で操作するためのツール

データベースを操作するためのツールの中で日本人が作成した有名所と言えば、

Vector の データベース の項目を見ても人気が高い。

 

ODBC の設定

試してみると両ツールとも ADO を使って DB にアクセスするようなので、予め ODBC の設定が必要。方法は 「ODBC によるMySQLの操作」 を参考にした。

方法は、

  1. ODBC で接続するためのコネクタを用意
  2. ODBC のリソースの設定

MySQL  本家サイトを見ると、DB に接続するためのコネクタがある。 JDBC のときは Connector/J ということか。(Execute Query, DbVisualizer  の場合)

リソースの設定は 「コントロールパネル > 管理ツール > データソース(ODBC) 」 で行う。

090401-005

 

文字化け対策

上記 ODBC の設定における Connector/ODBC (「システム DSN」の「構成」) の Connect Options の Initial Statement の値を

SET NAMES SJIS

として設定。

090401-006

MySQL を UTF-8 で使っている場合、この設定をしないと A5:SQL Mk-2 で日本語でデータを追加すると文字化けするようだ。Character Set は何も入力しなくても大丈夫だったけれど、念のため sjis を指定。

ただし、テーブルへのインポートを行うと文字化けする。理由はわからず。 (+_+)

MySQL の設定として、 WinMysqLadmin で my.ini Setup タブに 

[mysqld]

default-character-set = utf8

[ODBC]

default-character-set=sjis

を追加したけれどダメだった。

 

4. A5:SQL Mk-2 で表計算ソフトからデータのペースト

ODBC の設定ができたら、A5:SQL Mk-2 でデータベースへ接続するための設定をする。

  1. メニューより 「データベース > データベースの追加と削除…」を選択。
  2. ダイアログが表示されたら、「追加」ボタンを押す。
  3. 「プロバイダ」 タブで "Microsoft OLE DB Provider for ODBC Driver" が選択して「次へ」
  4. データソースを ODBC の設定でした名前を選択。

もし、接続テストをして以下のエラーが表示された場合は、

接続先データベースが不明です。MyODBCにて接続の場合は "Database" の項目を設定して下さい。

ODBC の設定において、Login > Database のフィールドに記述がされているか確認する。

img10-03-20102

表計算ソフト (Excel, OOCalc, Google SpreadSheet) でデータを作成しコピーしたら、A5:SQL Mk-2 でデータを挿入する対象のテーブルを開き、「編集 > レコード貼り付け(ExcelやTSVから)」 を選択。

ただし、OOCalc の場合、以下のエラーが表示されるので、「レコード貼り付け(ExcelやTSVから) 」ボタンを押す。

img10-03-20103

 

5. サンプルデータベースの作成とデータの取り込み

追記 (2010.10.9) : 例えば、「株式会社モンダ技研工業 販売管理データベース」のデータを MySQL に取り込みたい場合は、

  1. 予め MySQL Workbench でテーブルを定義
  2. 表計算ソフトにデータをペースト
  3. ODBC 経由でデータベースにアクセスできるように設定
  4. 表計算からデータをコピーして、A5:SQL Mk-2 でレコードを貼り付ける

ただし、上記データの日付は MySQL の Date 型に直接取り込めない。 OOCalc を利用しているなら、下記のように MySQL の日付リテラルで許可される形式に変換しておく必要がある。 ( cf. 10.3.1 DATETIME、DATE、そして TIMESTAMP タイプ)

=LEFT(日付;4) & "/" & MID(日付;5;2) & "/" & RIGHT(日付;2)

 

6. まとめ

 

参考

1コメント:

匿名 さんのコメント...

ExcelでMySQLのデータを取得/更新するなら、ExcelDBToolをお勧めします。
データ取得、更新、削除することだけではなく、複数のSQLを実行して、結果を
一括Excelの各シートに出力することもできます。データ作成の機能を使って、
氏名、住所、電話など60種類以上のダミーデータも作成できます。
作成したデータを直接DBに登録して、シート名とテーブル名が一致すれば、
一括で複数テーブルのデータもExcelに取得できます。
詳しくは下記サイトをご参照ください。

http://www.superdbtool.com

MySQL ODBC 5.2のインストールでエラーが出た場合、下記の記事をご参考ください。
<a href="http://superdbtool.blog.jp/archives/922402.html>http://superdbtool.blog.jp/archives/922402.html
</a>