MySQLのテーブル作成 既存DBからのDDL生成はエクスポート機能を使う
  • facebookページ
  • twitterページ
  • 2019.12.12

    MySQLのテーブル作成 既存DBからのDDL生成はエクスポート機能を使う

    MySQLのテーブル作成の方法について、サンプルSQLを紹介しながらまとめています。

    以下、データベースとして、MySQLのサンプルデータベースEmployeesを使っています。SQL実行結果の表示にはphpMyAdminを使用しています。

    MySQLのテーブル作成構文

    create table文でテーブルを作成します。

    カラムの型は、varcharやtext、int、floatなどを指定します。NULL許可、デフォルト値など、カラム名と型以外は省略可能です。

    参考)MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.1.17 CREATE TABLE 構文

    例えば、Employeesデータベースのemployeesテーブルと全く同じ構造を持つemployees2を作成するには、以下のSQLを実行します。

    実行すると、以下の構造を持つemployees2が作成されます。

    テーブル存在時にエラーを抑制するには、IF NOT EXISTSを使用

    テーブルがすでに存在する状態で、create table文を実行すると、以下のエラーとなります。

    エラーを回避するには、以下のように「IF NOT EXISTS」を使用します。

    上記を実行すると、employees2テーブルが存在しなければテーブルを作成し、すでに存在すれば何もせずにSQLを終了します。

    既存のテーブルをコピーして、テーブル作成

    既存のテーブルと全く同じ構造の場合、テーブル構造をコピーして別テーブルを作成することができます。

    テーブル構造に加えて、主キーやインデックスも同じテーブルが作成されます。データはコピーされません。

    データをコピーするには、以下のようにします。

    上記SQLを実行すると、employees(社員)テーブルからデータをコピーし、employees3テーブルに挿入します。

    【関連記事】
    MySQL Insert サンプルコード集 一文で一括挿入する方法とは?

    既存データベースのDDL(テーブル作成用SQL)を出力する

    既存データベースから、テーブル作成用のDDL(Data Define Languate。テーブルを生成するSQL)を出力するにはMySQLのエクスポート機能を利用します。

    phpMyAdminからおこなう場合は、上記のイメージのように対象データベースを選択してから、「エクスポート」タブをクリックし、エクスポート方法の「詳細 – 可能なオプションを全て表示」にチェックします。

    フォーマットを「SQL」に指定して、「フォーマット特有のオプション」で、「構造」にチェックを入れます。

    「実行」をクリックすると、DDLがファイル出力されます。

    「テーブルの構造 テーブル名」のコメントのあとに、テーブルごとのDDLが出力されています。

    コマンドラインから実行する場合は、以下のコマンドを実行します。

    -dオプションは、データなしで構造のみデータベースダンプするためのオプションです。このオプションを指定しないと、データベースのデータを全て含む、巨大なSQLを出力してしまうので注意しましょう。

    ER図ツールから、テーブル作成SQLを生成する

    テーブル設計をおこなってテーブル作成SQLを生成する場合、SQL生成機能を備えたER図ツールが便利です。

    MySQLの付属ツールであるMySQL WorkbenchにはER図の機能があり、既存のデータベースからER図を作成するリバースエンジニアリング機能、ER図からテーブル作成をおこなうフォワードエンジニアリング機能が備わっています。

    もともと、MySQL Workbenchは英語版のみなのですが、日本語化をおこなうファイルが公開されていて、簡単に日本語化できます。

    【関連記事】
    MySQL Workbench 8.0を日本語化して、ER図でリバースエンジニアリング

    フリーのER図ツール A5M2

    20年以上ものあいだ、ずっとバージョンアップ・バグフィックスが行われているフリーのSQL開発ツール、A5:SQL Mk-2(エーファイブ・エスキューエル・マークツー)というフリーウェアがあります。

    開発者の間では、通称A5M2と呼ばれています。

    参考)A5:SQL Mk-2 – フリーの汎用SQL開発ツール/ER図ツール .. 松原正和

    Oracle、MS SQL Server、PostgreSQL、MySQLに対応し、軽量でサクサク動くのが特徴。データベースからER図生成、ER図からデータベース生成ができます。

    Excel形式のテーブル定義書の出力も可能。

    テーブルが増えてきたときの視認性アップの工夫も秀逸で、ページやサブタイプという考えを取り入れて見やすく表示できるようになってます。日本の開発現場で求められるような、見栄えのようER図が、このツールで作れるんですね。

    まとめ

    ポテパンダの一言メモ
    • MySQLでテーブル作成をおこなうには、create table文を実行する
    • 既存のテーブルと同じ構造のテーブルを作るには、create table … like文を実行
    • MySQLのダンプ(エクスポート)機能を利用して、DDLを出力可能
    • ER図ツール、A5M2は見やすいER図とデータベース、テーブル定義書が生成できる


    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE