SQL create tableでテーブル生成 DBMSごとに差異あり
  • facebookページ
  • twitterページ
  • 2019.09.05

    SQL create tableでテーブル生成 DBMSごとに差異あり

    テーブルを生成するSQL文、create tableについてまとめました。

    以下、MySQL前提のサンプルコードになります。データベースとして、MySQLのサンプルデータベースEmployeesを使っています。

    create table の使い方

    カラム名、INT型、日付型などのデータ型、NULLを許可するか、デフォルト値、プライマリーキーとなるカラムを指定します。

    指定可能なオプションには、他にもユニークキー指定やAUTO_INCREMENTなどがあります。

    データベース領域のタイプ、文字セットを指定します。

    primaryキーを後から追加設定する

    PRIMARYキーは、create table文に含めることも出来ますが、Alter table文でテーブル作成後に追加設定が可能です。

    インデックスキーを一時的にdropしてデータを大量に高速に削除するような運用をおこなう場合は、インデックスのみ設定しなおすためにalter tableで記述したSQLファイルを用意しておくとよいでしょう。

    foreignキーを後から追加設定する

    foreignキーもPRIMARYキー同様、create table文に含めることが可能です。

    しかし、後からインデックスのみ再設定することを想定して、alter table文でSQLファイルを用意しておくのが良いでしょう。

    default値を後から設定する

    対象カラムの情報をまるごと再設定することも可能です。

    default値以外に、カラム名、データ型、NULLの許可、カラムコメントの変更が可能です。

    selectの結果から、新しいテーブルを作成

    select文の結果を使って、新しいテーブルを作成できます。

    単純に元のテーブルを複製する場合は、以下のSQLを実行します。

    employeesテーブルを複製して、employees2テーブルを作成します。

    なお、データ構造のみ複製し、データをコピーしたくない場合は以下のSQLを実行します。

    WHERE 1=2という条件は常に偽となるため、データはコピーされません。

    create table実行時のエラー already exists

    create table実行時に、以下のエラーが出力されることがあります。

    create tableに「IF NOT EXISTS」をつけることで、テーブルが存在しないときのみテーブルを作成するようになり、エラーを抑制できます。

    主要DBMSのcreate table関連の差異

    Oracleはデフォルト値削除ができない

    Oracleでは、テーブルのカラムのデフォルト値を削除するDDLがありません。

    デフォルト値にNULLを設定することで、「デフォルト値を設定していない状態」と同じ振る舞いをさせることができます。

    MySQLは、テーブル構造を生成するSQL出力可能

    mysqlでは、既存データベースからテーブル構造を生成するSQLを出力することが可能です。

    create table、create algorithm(ビューのクリエイト)、プライマリキーやインデックス、制約(Foreignキー)の生成が含まれます。

    SQL Serverのselect~into文は独自仕様

    SQL Serverでは、selectで抽出したデータでtable createする場合の構文が、MySQLやOracleとは異なります。

    create tableのまとめ

    ポテパンダの一言メモ
    • create table でテーブルを作成できる
    • テーブル作成後にPRIMARYキー制約やForeignキー制約、Default値などの変更が可能
    • DBMSにより、create tableの仕様差異あり

    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

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









    ABOUT US

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

    READ MORE

    ポテパンおすすめ案件