以前の記事でmysql workbenchのインストールからmysqlへの接続までをご紹介しました。
Node.js Tips: mysqlの統合管理ツール workbench
今回はWorkbenchの機能を使って、実際にDatabaseを作成し、データを登録してSQLを実行してみます。
作成するDatabase、Table、登録データは参考書籍の内容をもとにします。(参考書籍は本記事の最後に掲載しています)
本記事では、一般的なデータベースを表現する場合、カタカナで「データベース」と表記します。明示的にMySQLの物理的なデータベースを指す場合は英語で「Database」と表記します。
文中にSchemaという言葉が登場します。これはDatabaseのシノニム(別名)らしいです。
(MySQL :13.1.12 CREATE DATABASE Statement)
(MySQL用語集: スキーマ)
この定義の必要性については分かっていませんが、MySQLでは単純にDatabase=Schemaという理解で良さそうです。
Workbenchでは、Databaseを操作する機能において常にSchemaという言葉が使用されていますので、ここでは常にSchemaという言葉を使用します。
Schemaの作成
Node.jsからアクセスするSchemaをMySQLに作成します。
Workbenchを起動し、接続先のデータベースサーバーを選択すると以下の画面になるので、Schema作成アイコンをクリックします。
Schemaエディターが表示されるので以下入力し、画面下にある小さいボタン「apply」をクリックします。クリックすると確認画面が表示されるだけで、まだ作成されません。
- Schema Name : MyNodeAppData
- Character Set : utf8
- Collation : utf8_unicode_ci
確認画面が表示されますので、「Apply」ボタンをクリックして作成します。
ここに表示されたSQL文が実際に実行されますので、あとから同じ事を実行しようとする場合のSQLスクリプトとして保存しておくということもできます。
例えば、今回Databaseを作成するサーバーが開発環境で、検証環境や本番環境にも同じDatabaseを作成する必要がある場合、もしくは他の開発者が別の開発環境用に同じDatabaseを作成する必要がある場合等、複数回実行する必要がある場合に保存しておくと後々良いかもしれません。
確認画面には「OnlineDDL」として2つのオプションが表示されています。
Schemaを作成する段階では意味がないのでどちらもDEFAULTのままで問題ありません。
OnlineDDLとは
ALTER TABLE時の挙動制御およびパフォーマンス改善のための仕組みです。
旧バージョンのMySQLでは、データベーススキーマの変更(例えばテーブルにカラムを1つ追加等)を実行すると、一旦別スキーマとしてテーブルを新規に作成し、既存テーブルのデータを新規テーブルにコピーしてから既存テーブルを削除するという動作になります。この間、対象テーブルへのアクセスはロックされるため、本番環境で頻繁にアクセスされるテーブル等での実行時には考慮が必要でした。
これを解消したのがOnlineDDLで、処理方式(ALGOLITHM)と排他制御(LOCK)を指定することでテーブル変更時にもアクセスできる状態を維持したり、処理自体のパフォーマンスを向上することができる仕組みです。
どの操作がOnlineDDLの対象かについては公式ドキュメントを参照してください。
MySQL : 14.11.1 オンライン DDL の概要
テーブルの作成
Schemaが作成できたので、続けてTableを作成します。
「Schema」タブをクリックすると、先程作成したSchemaが表示されますので、以下手順で新規Table作成画面を表示します。
- 操作対象のSchema (ここでは「MyNodeAppDb」)をダブルクリック→操作対象のSchemaとしてマークされます。
- 「Create new table」アイコンをクリック
Tableを新規作成するためのデザイン画面が表示されますので、以下のように入力し、「Apply」ボタンをクリックします。(直感的な操作で行けると思います!)
確認画面が表示されるので再度「Apply」ボタンをクリックします。
「Close」ボタンをクリックしてWorkbenchの画面に戻ったらSchemaの「Tables」をクリックしてみると、作成したTableが表示されます。
初期データの登録
では、Workbenchでデータを登録しましょう。
作成したテーブル名「mydata」の右側にある小さなグリッドアイコンをクリックするとテーブル操作画面が表示されます。
「Form Editor」をクリックし、データ(Name,Mail,Age)を登録していきます。
idはテーブル作成時に自動インクリメントされるフィールドとして作成したので、何も登録しなくてもOKです。
1レコード登録したら追加アイコンをクリックして次のデータを登録します。
ここでは以下のデータを登録しました。
Name | Age | |
---|---|---|
Taro | taro@yamada | 35 |
hanako | hanako@flower | 29 |
sachiko | sachiko@happy | 17 |
ichiro | ichiro@baseball | 45 |
jiro | jiro@change | 58 |
mami | mami@mumemo | 9 |
すべてのデータを登録後「Apply」ボタンをクリクすると確認画面が表示されますので、再度「Apply」ボタンをクリックして登録を完了させます。

SELECTで確認
最後に登録したデータを確認します。
「Result Grid」をクリックすると、登録したデータを確認することができます。
コメント