MySQL CREATE TABLE:構文と実用的な例
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
CREATE TABLE
ステートメントは、カラムと制約を含むテーブルの構造を定義します。- 外部キーは、テーブル間の関係を確立するために使用されます。
- 既存のテーブルから構造またはデータをコピーして、新しいテーブルを作成できます。
テーブルの作成は、MySQLでリレーショナルデータベースを設計および管理する上で基本的な側面です。CREATE TABLE
ステートメントを使用すると、テーブルの構造(カラム、データ型、制約、およびその他のプロパティを含む)を定義できます。このガイドでは、CREATE TABLE
ステートメント、その構文、およびMySQLでテーブルを効果的に作成するのに役立つ実用的な例の概要を説明します。
基本的な構文
MySQLでテーブルを作成するための一般的な構文は次のとおりです。
CREATE TABLE [IF NOT EXISTS] table_name ( column1 datatype [constraints], column2 datatype [constraints], ... [table_constraints] ) [table_options];
IF NOT EXISTS
: テーブルが既に存在する場合にエラーを防ぐためのオプションの句。table_name
: 作成するテーブルの名前。column1
、column2
、...:データ型とオプションの制約を含む、テーブルのカラムの定義。table_constraints
: 主キー、外部キー、および一意制約などのオプションの定義。table_options
: ストレージエンジンや文字セットなどのオプションの設定。
例:簡単なテーブルの作成
customers
テーブルを作成する例を次に示します。
CREATE TABLE customers ( customer_id INT AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (customer_id) );
この例では:
customer_id
は、新しいレコードごとに自動的にインクリメントされる整数で、主キーとして機能します。name
は、最大長が100文字の必須テキストフィールドです。email
は一意のテキストフィールドで、重複するメールアドレスがないことを保証します。created_at
は、レコードが作成されたときのタイムスタンプを記録し、デフォルトは現在の時刻です。
外部キーを持つテーブルの作成
テーブル間の関係を確立するには、外部キーを使用できます。たとえば、customers
テーブルを参照するorders
テーブルを作成します。
CREATE TABLE orders ( order_id INT AUTO_INCREMENT, customer_id INT, order_date DATE, PRIMARY KEY (order_id), FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
ここで、orders
テーブルのcustomer_id
は、customers
テーブルのcustomer_id
を参照する外部キーであり、2つのテーブル間の関係を確立します。
別のテーブルに基づくテーブルの作成
MySQLでは、既存のテーブルの構造をコピーして新しいテーブルを作成できます。
CREATE TABLE new_table LIKE existing_table;
このステートメントは、existing_table
と同じ構造を持つ新しいテーブルnew_table
を作成しますが、データはコピーしません。
または、新しいテーブルを作成し、既存のテーブルからデータを入力するには:
CREATE TABLE new_table AS SELECT column1, column2 FROM existing_table WHERE condition;
このアプローチでは、指定されたカラムを持つnew_table
を作成し、指定された条件を満たすデータをコピーします。
ストレージエンジンの指定
MySQLはさまざまなストレージエンジンをサポートしており、InnoDBがデフォルトです。ENGINE
オプションを使用してストレージエンジンを指定できます。
CREATE TABLE products ( product_id INT AUTO_INCREMENT, name VARCHAR(100), price DECIMAL(10,2), PRIMARY KEY (product_id) ) ENGINE=InnoDB;
適切なストレージエンジンを選択すると、トランザクションサポートや外部キー制約などのパフォーマンスと機能に影響を与える可能性があります。
結論
MySQLのCREATE TABLE
ステートメントは、データベーステーブルの構造を定義するための強力なツールです。その構文とオプションを理解することで、データを効果的に保存および管理し、テーブル間の関係を確立し、適切な構成を通じてパフォーマンスを最適化するテーブルを作成できます。
FAQs
テーブルが既に存在する場合にエラーを回避するには、IF NOT EXISTS
を使用します。
はい、CREATE TABLE ... AS SELECT ...
を使用して、別のテーブルからテーブルを作成してデータを入力します。
InnoDBはデフォルトであり、トランザクションや外部キーなどの機能に推奨されます。
Leapcellは、バックエンドプロジェクトをホストするための最適な選択肢です。
Leapcellは、ウェブホスティング、非同期タスク、Redisのための次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ料金が発生します — リクエストも料金もかかりません。
比類のない費用対効果
- アイドル料金なしの従量課金。
- 例:25ドルで平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOpsの統合。
- 実行可能な洞察を得るためのリアルタイムのメトリックとロギング。
簡単なスケーラビリティと高性能
- 高い同時実行性を容易に処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ — 構築に集中するだけです。
詳細については、ドキュメントをご覧ください。
Xでフォローしてください:@LeapcellHQ