INSERT

INSERTクエリについての詳細な解説と使用例。新しいレコード追加の基本から応用まで学べます。

説明

INSERT は データベースに新しいレコード(行)を追加するためのクエリです。
単一のレコード追加だけでなく、複数レコードの一括挿入や、他のテーブルから取得したデータの挿入も可能です。

基本構文
quest.sql
Loading...
例文

単一のユーザーレコードをusersテーブルに追加

quest.sql
Loading...
— RESULT

クエリを実行してください

複数の商品レコードを一度にproductsテーブルに追加

quest.sql
Loading...
— RESULT

クエリを実行してください

複数のユーザーを一括で追加(複数VALUES)

quest.sql
Loading...
— RESULT

クエリを実行してください

30歳以上のユーザーを別テーブルにコピー(SELECT結果をINSERT)

quest.sql
Loading...
— RESULT

クエリを実行してください

注意点
  • 列を指定せずINSERTすることは非推奨

    必ずテーブル定義の順序通りにすべての値を指定する必要があり、スキーマ変更に弱い。

    実務では必ず対象列を明示すること。

  • 自動採番(AUTO_INCREMENT)されるIDは指定しない

    ほとんどのDBではID列は指定せず、自動で値が割り当てられる。

  • NULL値の挿入に注意

    NOT NULL制約がある列にはNULLを挿入できない。DEFAULT値がある場合は DEFAULT キーワードを使用。

  • 大量データ挿入時はトランザクション処理を考慮

    パフォーマンスと安全性の両面から、適切なバッチサイズで分割挿入することが重要。

使用シーン
  • ユーザー登録フォーム送信時に新規ユーザーを登録
  • 商品情報を管理画面から追加
  • APIから取得したデータを定期的にDBに保存
  • 他のテーブルのデータをバックアップテーブルにコピー
  • バッチ処理で大量のレコードを一括投入
このクエリを実践するには?

#25 新しいユーザーを追加

初級INSERT基本ログインして解除

practice_insert_usersテーブルにid=6、名前「中村陽子」、メール「nakamura@example.com」、年齢29のレコードを追加してください。

#26 電子機器カテゴリの商品を追加

初級INSERT基本ログインして解除

practice_insert_productsテーブルにid=6、名前「USBメモリ」、価格1800、カテゴリ「電子機器」の商品を追加してください。

#27 新しい注文を追加

初級INSERT基本ログインして解除

practice_insert_ordersテーブルにid=6でユーザー1が商品2を3個購入した注文(注文日2024-01-20)を追加してください。

#28 複数ユーザーを一度に追加

初級INSERT複数行ログインして解除

practice_insert_usersテーブルに松本紗季(id=7, email: matsumoto@example.com, 年齢27)と小林優(id=8, email: kobayashi@example.com, 年齢31)を1つのINSERT文で追加してください。

関連クエリ
QSQL Quest