MySQLで1つのカラムに複数の値を一度に挿入する方法
MySQLで単一カラムに複数行を挿入する基本構文
MySQLでは、INSERT文を繰り返し実行しなくても、1つのクエリで単一のカラムに複数の値を挿入できます。基本的な構文は以下のとおりです。
INSERT INTO テーブル名(カラム名) VALUES('値1'),('値2'),('値3'),('値4'),.........N;このように、VALUES句の後に複数の値セットを括弧で囲んでカンマ区切りで並べるだけで、1回の実行で複数行を登録できます。
サンプルテーブルの作成
それでは、実際に動作を確認するためにテーブルを作成してみましょう。テーブル作成のクエリは以下のとおりです。
mysql> create table InsertMultipleDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> UserName varchar(10), -> UserRole varchar(20), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (3.14 sec)
このテーブルには「Id」「UserName」「UserRole」の3つのカラムがあります。IdはAUTO_INCREMENTにより自動採番されるため、 UserRoleだけを指定して挿入すれば、残りのカラムは自動的に処理されます。
複数の値を1回のINSERT文で挿入する
次に、INSERTコマンドを使って複数のレコードを同時に挿入します。 UserRoleカラムに対して4つの値を一度に登録するクエリは以下のとおりです。
mysql> insert into InsertMultipleDemo(UserRole) values('Admin'),('Author'),('Driver'),('Guest');
Query OK, 4 rows affected (0.17 sec)
Records: 4 Duplicates: 0 Warnings: 0実行結果を見ると、「4 rows affected」と表示されており、4行が正常に挿入されたことがわかります。重複(Duplicates)や警告(Warnings)も発生していません。
SELECT文で挿入結果を確認する
最後に、SELECT文を使ってテーブル内のすべてのレコードを表示し、正しく挿入されているか確認しましょう。
mysql> select UserRole from InsertMultipleDemo;
実行結果は以下のとおりです。
+----------+ | UserRole | +----------+ | Admin | | Author | | Driver | | Guest | +----------+ 4 rows in set (0.00 sec)
まとめ
この方法を使えば、複数回のINSERT文を実行する必要がなく、1回のクエリで効率的にデータを登録できます。大量のデータを挿入する場合、個別にINSERT文を実行するよりもパフォーマンス面でも有利になるため、実務でも広く使われるテクニックです。
-
MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法
はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実
-
MySQLクエリで列名にエイリアス(別名)を設定する方法
MySQLでは、SELECT文を使って列名に「エイリアス(別名)」を設定できます。エイリアスを利用すると、出力結果の見出しをわかりやすい名前に変更でき、レポート作成やアプリケーションでのデータ表示が格段に読みやすくなります。列名にエイリアスを設定する基本構文SELECT yourColumnName1 anyAliasName1, yourColumnName2 anyAliasName2FROM yourTableName anyAliasName;このように、列名の後にスペースを空けて任意の別名を記述するだけで、その列の表示名がエイリアスに置き換わります。テーブル名にも同様にエイリアスを設