MySQLのテーブルに1つのINSERT文で複数の値をまとめて挿入する方法
単一のINSERT文で複数の値を挿入するとは
MySQLでは、複数行のデータを登録する際に、INSERT文を行の数だけ実行する必要はありません。VALUES句の後ろにカンマ区切りで値のセットを並べることで、たった1つのINSERT文で複数のレコード(値の配列)を一度に挿入できます。この方法はSQLの実行回数を減らせるため、大量データの登録時にはパフォーマンス面でも有利になります。
それでは、実際の手順を見ていきましょう。
手順1:テーブルを作成する
まず、サンプル用のテーブルを作成します。
mysql> create table DemoTable
(
ClientId int,
ClientName varchar(50)
);
Query OK, 0 rows affected (0.62 sec)
ここでは、顧客ID(ClientId)と顧客名(ClientName)の2つのカラムを持つ「DemoTable」を作成しました。
手順2:単一のINSERT文で複数のレコードを挿入する
次に、INSERT命令を使ってテーブルにレコードを登録します。ポイントは、値のセット (...) をカンマ(,)で区切って列挙する部分です。これにより、5件分のデータがたった1回のINSERTで挿入されます。
mysql> insert into DemoTable values(101,'Adam'),(102,'Chris'),(103,'Robert'),(104,'Sam'),(105,'Mike');
Query OK, 5 rows affected (0.16 sec)
Records: 5 Duplicates: 0 Warnings: 0
実行結果を見ると「Query OK, 5 rows affected」と表示されており、5件のレコードが正常に登録されたことが確認できます。
手順3:SELECT文で登録内容を確認する
SELECT文を実行して、テーブル内のすべてのレコードを表示しましょう。
mysql> select *from DemoTable;
上記のクエリを実行すると、次のような出力が得られます。
+----------+------------+
| ClientId | ClientName |
+----------+------------+
| 101 | Adam |
| 102 | Chris |
| 103 | Robert |
| 104 | Sam |
| 105 | Mike |
+----------+------------+
5 rows in set (0.00 sec)
まとめ
このように、INSERT文のVALUES句に (値1, 値2), (値1, 値2), ... の形式でカンマ区切りにより複数の行を指定するだけで、1回の実行で任意の数のレコードをMySQLのテーブルへ一括挿入できます。個別にINSERT文を実行するのに比べてコードが簡潔になり、処理速度も向上するため、複数行のデータ追加には積極的に活用しましょう。
-
Javaを使ってMySQLテーブルにレコードを挿入する方法
はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable( Id int, Name varchar(30),&
-
JavaでMySQLテーブルに1つのカラムのみを挿入する方法
JavaとMySQLを連携させる際、テーブルの一部のカラムだけにデータを挿入したいケースはよくあります。その場合は、JDBCのINSERT INTOステートメントを使用します。挿入対象のカラム名を明示的に指定することで、他のカラムには影響を与えずに1つのカラムのみへ値を登録できます。この記事では、実際にテーブルを作成し、Javaのコードから「Name」という1つのカラムだけにデータを挿入する手順を解説します。1. 挿入先のテーブルを作成するまず、MySQLで以下のようにテーブルを作成しておきましょう。ここでは、varchar型の「Name」カラムを1つだけ持つシンプルなテーブルを用意します。m