MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法

MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。

基本構文

SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。

insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;

それでは、実際の使用例を見ていきましょう。

実践例:ステップごとの手順

1. テーブルを作成する

まず、サンプル用のテーブルを作成します。

mysql> create table DemoTable1603
    -> (
    -> StudentId int,
    -> StudentName varchar(20),
    -> StudentMarks int
    -> );
Query OK, 0 rows affected (0.50 sec)

2. SELECTクエリを使ってレコードを挿入する

次に、INSERTコマンドとSELECTクエリを組み合わせて、テーブルにレコードを追加します。

mysql> insert into DemoTable1603(StudentId,StudentName,StudentMarks) select 101,'John',45;
Query OK, 1 row affected (0.17 sec)
Records: 1  Duplicates: 0  Warnings: 0
mysql> insert into DemoTable1603(StudentId,StudentName,StudentMarks) select 102,'Adam',76;
Query OK, 1 row affected (0.11 sec)
Records: 1  Duplicates: 0  Warnings: 0
mysql> insert into DemoTable1603(StudentId,StudentName,StudentMarks) select 103,'Bob',67;
Query OK, 1 row affected (0.31 sec)
Records: 1  Duplicates: 0  Warnings: 0

3. 挿入されたレコードを確認する

SELECT文を使って、テーブル内のすべてのレコードを表示してみましょう。

mysql> select * from DemoTable1603;

上記のコマンドを実行すると、以下のような出力が得られます。

+-----------+-------------+--------------+
| StudentId | StudentName | StudentMarks |
+-----------+-------------+--------------+
|       101 | John        |           45 |
|       102 | Adam        |           76 |
|       103 | Bob         |           67 |
+-----------+-------------+--------------+
3 rows in set (0.00 sec)

まとめ

このように、INSERT文の中でSELECT句を使用することで、指定したカラムに対して任意の値を柔軟に挿入できます。単純なVALUES句を使う方法の代替手段として、他のテーブルからのデータ取得や条件分岐など、SELECTならではの柔軟性を活かしたい場面で特に役立ちます。

  1. MySQLの正規表現(REGEXP)を使ってSELECTクエリでレコードを抽出する方法

    MySQLの正規表現(REGEXP)を使ってSELECTクエリでレコードを抽出する方法 MySQLでは、REGEXP演算子をWHERE句と組み合わせることで、正規表現パターンに一致するレコードだけを柔軟に抽出できます。本記事では、サンプルテーブルの作成からデータ挿入、そして正規表現を活用したSELECTクエリの実行まで、具体的な手順を解説します。 1. テーブルの作成 まず、以下のコマンドでサンプル用のテーブルを作成します。 mysql> create table DemoTable1573     -> (   &nb

  2. MySQLのINSERT INTO SELECT構文でAUTO_INCREMENTテーブルにデータを挿入する方法

    はじめにMySQLでは、INSERT INTO ... SELECT構文を使うことで、SELECT文の結果をそのまま別のテーブルへ挿入できます。AUTO_INCREMENT列を持つテーブルに対しても、SELECT句で明示的に値を指定すれば、任意のIDを設定した状態で挿入が可能です。本記事では、AUTO_INCREMENT主キーを持つテーブルに、INSERT INTO SELECT文で具体的な値を挿入する手順を、サンプルコードと実行結果とともに解説します。テーブルの作成まず、次のようにテーブルを作成します。mysql> create table DemoTable1923 &nb