MySQLのINSERT文を徹底解説!初心者でも安心の入門ガイド

こんにちは。ゆうせいです。

今回は、データベースに新しい情報を追加するための命令文、MySQLのINSERT文について、わかりやすく丁寧に解説していきます。プログラミングを始めたばかりの方や、データベース操作に慣れていない方でも安心して理解できる内容になっています。


INSERT文ってなに?

新しいデータを「追加する」ための命令

INSERT文は、すでにあるテーブルに新しい行(レコード)を追加するために使います。
たとえば、社員テーブルに新しい社員の情報を追加したいときなどに使用します。

イメージとしては、「空いている席に新しい人を座らせる」ようなものですね。


INSERT文の基本構文

INSERT INTO テーブル名 (カラム1, カラム2, ...)
VALUES (値1, 値2, ...);

たとえば、「社員名簿」に「佐藤 太郎さん(ID=6)」を追加したい場合は:

INSERT INTO employees (id, name, department)
VALUES (6, '佐藤 太郎', '営業');

この構文は、どのカラムに、どの値を入れるかを明確に指定しています。


INSERTの省略形(すべてのカラムに値を入れる場合)

もしテーブルの全カラムに値を入れる場合、カラム名の記述を省略することもできます。

INSERT INTO employees
VALUES (6, '佐藤 太郎', '営業');

ただし、省略するとカラムの順番通りに値を並べる必要があります
順番がずれるとエラーになったり、間違った情報が入ったりするので要注意!


連続で複数のデータを追加するには?

一度にまとめてINSERTする方法

INSERT INTO employees (id, name, department)
VALUES 
  (7, '田中 花子', '経理'),
  (8, '山本 次郎', '開発'),
  (9, '井上 三郎', '営業');

これは、1行ずつINSERTするより効率がよく、処理も速くなります。

まるで「まとめて席に座らせる」ような感じですね。


NULLや省略できる値の扱い

値を入れないときはどうする?

たとえば、電話番号がまだ未登録の社員を追加したいとき:

INSERT INTO employees (id, name, phone)
VALUES (10, '高橋 美咲', NULL);

NULLは「まだ値がない状態」を意味します。
空欄とは違い、「未定義であること」をはっきりさせる重要な要素です。


AUTO_INCREMENTとの組み合わせ

IDは自動で増やしたいとき!

たいていのデータベースでは、idカラムにAUTO_INCREMENT(自動採番)が設定されています。

INSERT INTO employees (name, department)
VALUES ('斎藤 健太', '人事');

この場合、idは自動で1つ増えた番号が設定されます。

注意:AUTO_INCREMENTを設定している場合は、idカラムを省略すること!


INSERT文のメリットとデメリット

項目内容
メリット新しいデータを簡単に追加できる
メリット複数件まとめて追加できるので効率的
デメリット入力ミスで不正なデータが追加される危険あり
デメリット主キーが重複するとエラーになる(特にid)

たとえば、すでにid=5があるのに、もう一度id=5を入れようとするとエラーになります。


よくあるミスとその対策

カラムと値の数が一致しない

INSERT INTO employees (id, name)
VALUES (11, '佐々木 隆', '総務');

このようにカラムは2つなのに、値が3つあるとエラーになります。
しっかり一致させましょう。


INSERTと一緒に使える応用テクニック

INSERT INTO ... SELECT

INSERT INTO employees_archive (id, name)
SELECT id, name FROM employees
WHERE department = '営業';

これは「営業部の社員をアーカイブテーブルにコピーする」ときに使えます。


今後の学習の道しるべ

INSERT文の基本がわかったら、次はこんなステップがおすすめです:

  • ON DUPLICATE KEY UPDATE(すでに存在する場合は更新する)
  • REPLACE文(重複があったら削除して追加)
  • トランザクションでINSERTの整合性を保つ
  • 入力データのバリデーション(不正なデータを防ぐ)

また、INSERTとUPDATEを組み合わせるシナリオも非常に多いです。
「このデータが存在しなければ追加、あれば更新」など、実務で役立つ応用が満載ですよ!


何か気になることがあれば、いつでも聞いてくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。