DB操作・開発支援ツールA5M2を使う③ -ER図からSQLを作成する

  • 2022年7月23日
  • 2022年7月17日
  • DB
  • ,
DB

以前にM5M2を使ってER図を作成する方法を紹介しました。

A5M2では、作成したER図からテーブル作成のSQL(DDL)を作成することができます。今回はER図を基にテーブル作成のSQLを作成し、DBにテーブルを構築するまでの流れを紹介します。

使用するER図

今回は以下のER図からSQLを作成します。

SQLを作成するER図

DDLを起こす

まずはER図からDDLを作成します。

A5M2でER図を開いたら、上部メニューバーから[ER図]を選択し、さらに[DDLを作成する]を選択します。

[DDLを作成する]を選択

すると以下のようなポップ画面が現れます。RDBMS種類は使用しているDBMSを指定してください。一通りの設定を終え、右下の「DDL作成」を押すとDDLが作成されます。

DDLの作成

今回のER図から作成されるDDLは以下のようなものです。

-- Project Name : studentinfo
-- Date/Time    : 2022/07/17 13:56:33
-- Author       : learn_nao
-- RDBMS Type   : PostgreSQL
-- Application  : A5:SQL Mk-2

/*
  << 注意!! >>
  BackupToTempTable, RestoreFromTempTable疑似命令が付加されています。
  これにより、drop table, create table 後もデータが残ります。
  この機能は一時的に $$TableName のような一時テーブルを作成します。
  この機能は A5:SQL Mk-2でのみ有効であることに注意してください。
*/

-- 学部マスタ
--* RestoreFromTempTable
create table facultyMaster (
  facultyID uniqueidentifier not null
  , facultyName NVARCHAR2(20)
  , constraint facultyMaster_PKC primary key (facultyID)
) ;

-- 学生
--* RestoreFromTempTable
create table student (
  studentNumber NCHAR(4) not null
  , studentName NCHAR(20)
  , facultyID uniqueidentifier
  , constraint student_PKC primary key (studentNumber)
) ;

comment on table facultyMaster is '学部マスタ';
comment on column facultyMaster.facultyID is '学部ID:学部を一意に識別するID';
comment on column facultyMaster.facultyName is '学部名:学部の名称';

comment on table student is '学生';
comment on column student.studentNumber is '学生番号:学生を一意に識別する値';
comment on column student.studentName is '学生名:学生の名前';
comment on column student.facultyID is '学部ID:学部を一意に識別するID';

あとはこのDDLを、テーブル作成したいデータベースで実行すればOKです。

DDLの実行

作成したDDLを実行します。テーブル作成対象のデータベースは既に作成されていることが前提です。

作成したSQLを開いた状態で、画面上部の(データベースを選択してください)というタブを押し、接続するデータベースを選択します。

(データベースを選択してください)というタブを押し、接続するデータベースを選択

データベースを選択した後は、下図赤枠内のタブを開き、実行位置を「先頭から全て」とします。この設定で、画面上のSQLが全て実行されます。そして、同じく赤枠内のアイコンを押すとDDLが実行されます。

赤枠内のアイコンを押すとDDLが実行される

DBへ未接続の場合、実行前に接続ユーザとパスワードが要求されます。実行すると、実際にテーブルが作成されたことが確認できます。

テーブルが作成された

まとめ

A5M2でER図からDDLを作成する方法を紹介しました。

この機能を使えばSQL(DDL)を作成する手間が省けるだけでなく、ミスなく設計したテーブル定義のままテーブルを作成することができ便利です。

是非お試しください^^

ではでは👋