カテゴリ: データベース 更新日: 2026/01/30

SQLのINSERT文を完全ガイド!初心者でもわかるデータの追加方法

INSERT文(データの追加)
INSERT文(データの追加)

新人と先輩の会話形式で理解しよう

新人

「データベースに新しい情報を追加するにはどうしたらいいですか?」

先輩

「データを追加するには、SQLのINSERT文を使うよ。」

新人

「INSERT文って何ですか?」

先輩

「INSERT文を使うと、データベースのテーブルに新しいデータを追加できるんだ。まずは、使用するテーブルを確認してみよう!」

1. 今回使用するテーブルデータ

1. 今回使用するテーブルデータ
1. 今回使用するテーブルデータ

今回のSQLの解説では、社員情報を管理するemployeeテーブルを使用します。このテーブルには、社員のidnameagedepartmentsalaryの情報が格納されています。

id name age department salary
1田中 太郎30営業5000000
2佐藤 花子25マーケティング4200000
3鈴木 一郎35開発6000000
4高橋 直子28人事4800000
5山本 健太40経理5500000

2. INSERT文の基本

2. INSERT文の基本
2. INSERT文の基本

SQLのINSERT文を使うと、新しいデータをテーブルに追加できます。基本の構文は次のようになります。


INSERT INTO employee (id, name, age, department, salary)
VALUES (6, '中村 健', 32, '営業', 5100000);

このSQL文は、employeeテーブルに新しい社員を追加します。各要素の意味は次の通りです。

  • INSERT INTO employee: employeeテーブルにデータを追加する。
  • (id, name, age, department, salary): 追加するデータのカラムを指定。
  • VALUES (6, '中村 健', 32, '営業', 5100000): 実際に追加するデータ。

このSQLを実行すると、データが追加され、テーブルの内容は以下のようになります。

id name age department salary
1田中 太郎30営業5000000
2佐藤 花子25マーケティング4200000
3鈴木 一郎35開発6000000
4高橋 直子28人事4800000
5山本 健太40経理5500000
6中村 健32営業5100000

このように、INSERT文を使うことで、新しいデータを簡単に追加できます。

3. 複数のデータを一度に追加する方法(複数行INSERT)

3. 複数のデータを一度に追加する方法(複数行INSERT)
3. 複数のデータを一度に追加する方法(複数行INSERT)

一度に複数のデータを追加したい場合は、INSERT文のVALUES句でカンマ区切りで複数の値を指定できます。


INSERT INTO employee (id, name, age, department, salary) 
VALUES 
(7, '井上 太一', 29, '開発', 5500000),
(8, '松本 由美', 27, '営業', 4800000),
(9, '藤田 翔', 33, 'マーケティング', 5100000);

このSQLを実行すると、employeeテーブルに3件のデータが一度に追加されます。

id name age department salary
1田中 太郎30営業5000000
2佐藤 花子25マーケティング4200000
3鈴木 一郎35開発6000000
4高橋 直子28人事4800000
5山本 健太40経理5500000
6中村 健32営業5100000
7井上 太一29開発5500000
8松本 由美27営業4800000
9藤田 翔33マーケティング5100000

このように、INSERT文を使って一度に複数のデータを追加することができます。

4. 指定したカラムのみデータを追加する方法

4. 指定したカラムのみデータを追加する方法
4. 指定したカラムのみデータを追加する方法

全てのカラムに値を指定しない場合、特定のカラムだけを指定してデータを追加することができます。


INSERT INTO employee (name, age, department) 
VALUES ('吉田 健', 26, '開発');

このSQL文では、idsalaryのカラムを指定していません。idAUTO_INCREMENT(自動採番)が設定されている場合は自動で番号が振られます。

このSQLを実行すると、以下のようにデータが追加されます。

id name age department salary
10吉田 健26開発NULL

このように、指定していないカラムの値はNULLが設定されます(デフォルト値がある場合は、その値が適用されます)。

5. デフォルト値を利用したINSERT

5. デフォルト値を利用したINSERT
5. デフォルト値を利用したINSERT

テーブルのカラムにデフォルト値が設定されている場合、DEFAULTキーワードを使ってデフォルト値を適用できます。


INSERT INTO employee (name, age, department, salary) 
VALUES ('田村 美咲', 31, '営業', DEFAULT);

このSQLでは、salaryDEFAULTを指定しているため、テーブルで設定されたデフォルト値が適用されます。

このSQLを実行すると、以下のような結果になります。

id name age department salary
11田村 美咲31営業5000000

このように、デフォルト値を活用すると、あらかじめ設定された値を自動的に適用できます。

6. よくあるエラーと対策

6. よくあるエラーと対策
6. よくあるエラーと対策

初心者がINSERT文を使う際に、よく発生するエラーとその対策を紹介します。

1. 指定していないカラムにNULL制約がある

データを追加する際に、必須のカラムを省略するとエラーになります。


INSERT INTO employee (name, age) VALUES ('山田 一郎', 29);

エラー内容: ERROR: Column 'department' cannot be null

対策: departmentカラムに値を指定するか、デフォルト値を設定する。


INSERT INTO employee (name, age, department) VALUES ('山田 一郎', 29, '営業');

2. IDの重複エラー

主キー(idカラム)が重複するとエラーになります。


INSERT INTO employee (id, name, age, department) VALUES (1, '佐々木 花子', 27, '人事');

エラー内容: ERROR: Duplicate entry '1' for key 'PRIMARY'

対策: idを手動で指定せず、AUTO_INCREMENTを利用する。

7. AUTO_INCREMENTの利用

7. AUTO_INCREMENTの利用
7. AUTO_INCREMENTの利用

idの値を自動で増加させたい場合は、AUTO_INCREMENTを利用します。


CREATE TABLE employee (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    department VARCHAR(50),
    salary INT DEFAULT 5000000
);

このようにidカラムにAUTO_INCREMENTを設定すると、新しいデータを追加するたびに自動で番号が増えます。


INSERT INTO employee (name, age, department) VALUES ('佐々木 花子', 27, '人事');

このSQLを実行すると、idは自動的に採番され、次のようなデータが追加されます。

id name age department salary
12佐々木 花子27人事5000000

AUTO_INCREMENTを使うことで、idを明示的に指定せずにデータを追加できます。

8. INSERT文とSELECT文を組み合わせたINSERT(INSERT INTO SELECT)

8. INSERT文とSELECT文を組み合わせたINSERT(INSERT INTO SELECT)
8. INSERT文とSELECT文を組み合わせたINSERT(INSERT INTO SELECT)

既存のデータをコピーして新しいレコードとして挿入するには、INSERT INTO ... SELECTを使用します。


INSERT INTO employee (name, age, department, salary)
SELECT name, age, department, salary FROM employee WHERE id = 1;

このSQLを実行すると、id=1のデータをコピーし、新しいIDで追加されます。

id name age department salary
13田中 太郎30営業5000000

このように、既存のデータをもとにして新しいデータを追加することができます。

まとめ

まとめ
まとめ

本記事では、SQLのINSERT文について、初心者でも理解しやすいように基本構文から応用的な使い方までを体系的に解説してきました。SQLのINSERT文は、データベースに新しいレコードを追加するための最も基本かつ重要なSQL構文の一つです。業務システム、Webアプリケーション、業務ツール、社内管理システムなど、あらゆる場面でデータ追加処理は欠かせません。そのため、INSERT文を正しく理解することは、SQL初心者や新卒エンジニアにとって必須の知識といえます。

まず、単一行のINSERT文では、INSERT INTO テーブル名 VALUES という基本構文を使い、各カラムに対応した値を指定する方法を学びました。この方法はシンプルで分かりやすい反面、カラムの順番を間違えると意図しないデータが登録されてしまうリスクがあります。そのため、実務ではカラム名を明示的に指定するINSERT文が推奨されるケースが多いことも理解できたはずです。

次に、複数行INSERTについて解説しました。一度のSQL実行で複数のレコードを追加できるため、データ移行や初期データ登録、テストデータ投入などで非常に役立ちます。SQLのパフォーマンス面でも有利になることが多く、効率的なデータ登録方法として覚えておくと実務で大いに活躍します。

また、指定したカラムのみを対象にINSERTする方法では、AUTO_INCREMENTやデフォルト値の仕組みを理解しました。IDを自動採番に任せることで、主キーの重複エラーを防ぎ、安全にデータを追加できます。DEFAULTキーワードを使えば、あらかじめ設定された初期値を活用でき、SQL文を簡潔に書ける点も重要なポイントです。

よくあるエラーと対策の章では、NULL制約や主キー重複といった初心者がつまずきやすいポイントを確認しました。エラー内容を正しく読み取り、原因を理解することで、SQLに対する苦手意識を減らし、トラブル対応力を高めることができます。これは実務経験を積むうえで非常に重要なスキルです。

さらに、INSERT INTO SELECTを使った応用的なINSERT文では、既存データを元に新しいデータを作成する方法を学びました。これはバックアップ作成やデータ複製、履歴管理など、実務で頻繁に使われるテクニックです。単なるデータ追加だけでなく、データ操作の幅を広げるSQL構文として理解しておきましょう。

以下は、これまで学んだ内容を踏まえたINSERT文の総合的なサンプルです。基本構文、AUTO_INCREMENT、DEFAULTを意識した実践的な例となっています。


INSERT INTO employee (name, age, department, salary)
VALUES 
('小林 恒一', 34, '開発', DEFAULT),
('石井 真由', 24, '営業', 4500000);

このように、SQLのINSERT文は基本を押さえれば柔軟かつ安全にデータを追加できます。検索エンジン対策の観点でも、「SQL INSERT 文」「INSERT INTO 使い方」「SQL データ 追加 方法」「AUTO_INCREMENT INSERT」「複数行 INSERT SQL」といったキーワードは検索需要が高く、初心者向け解説記事として非常に有効です。今回の記事を通じて、SQLの基礎力をしっかり身につけ、実務や学習に活かしていきましょう。

新卒エンジニアと先輩社員の振り返り会話

新卒エンジニア

「INSERT文って、最初はただデータを入れるだけのSQLだと思っていましたが、こんなに奥が深いんですね。」

先輩社員

「そうだね。SQLのINSERT文は基本だけど、AUTO_INCREMENTやDEFAULT、INSERT INTO SELECTまで理解すると、一気に実務レベルになるよ。」

新卒エンジニア

「特にIDの重複エラーやNULL制約の話は、実際にやらかしそうだなと思いました。」

先輩社員

「誰でも一度は通る道だよ。だからこそ、エラーの意味と対策を理解しておくことが大事なんだ。」

新卒エンジニア

「INSERT INTO SELECTも便利ですね。既存データをコピーできるのは知りませんでした。」

先輩社員

「実務ではよく使うから、覚えておくと評価も上がるよ。まずはINSERT文を自信を持って書けるようになろう。」

新卒エンジニア

「はい!SQLのINSERT文はもう怖くないです。しっかり復習して身につけます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

SQLのINSERT文とは何ですか?

SQLのINSERT文とは、データベースのテーブルに新しいデータを追加するための文です。たとえば社員情報などを新規に追加する際に使われます。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Springのモジュール構成(DI・AOP・MVCなど)を紹介
Javaの論理演算子(&&, ||, !)の使い方を学ぼう
テスト対象のメソッドを呼び出して結果をチェックする
Javaの比較演算子(==, !=, >, <)で値を比べよう
人気記事
No.1
Java&Spring記事人気No1
単体テストと結合テストの違いを理解しよう
No.2
Java&Spring記事人気No2
Javaとは?初心者向けにやさしく解説
No.3
Java&Spring記事人気No3
SQLのサブクエリを完全ガイド!入れ子クエリの使い方を初心者向け解説
No.4
Java&Spring記事人気No4
SQLのトリガー(TRIGGER)を完全ガイド!初心者でもわかる自動処理の仕組み