データベースでは、INSERT INTO SELECT ステートメントを使用して、クエリの結果を別のテーブルに挿入します。 INSERT INTO SELECT ステートメントを使用すると、あるテーブルの内容を別のテーブルに簡単にコピーしたり、クエリ結果に基づいて新しいテーブルを作成したりできます。
INSERT INTO SELECT の構文は次のとおりです。
INSERT INTO table2 (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM table1 WHERE condition;
このステートメントは、テーブル 1 内の行の列 1 と列 2 を、条件を満たす行に追加することを意味します。特定の条件で、column3 と他の列が table2 の対応する列に挿入されます。
次は、INSERT INTO SELECT の使用法を示す実際的な例です。
student と new_students という 2 つのテーブルがあるとします。学生テーブルには、ID、名前、年齢、スコアの列が含まれています。 students テーブル内の 18 歳以上の学生を new_students テーブルに挿入したいと考えています。
最初に、students テーブルを作成し、サンプル データを挿入します:
CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, score INT ); INSERT INTO students (name, age, score) VALUES ('John', 16, 90), ('Alice', 20, 95), ('Tom', 18, 85), ('Emily', 17, 88);
次に、new_students テーブルを作成します:
CREATE TABLE new_students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, score INT );
最後に、INSERT INTO SELECT ステートメントを使用します。学生を挿入するには テーブル内の 18 歳以上の学生が new_students テーブルに挿入されます。
INSERT INTO new_students (name, age, score) SELECT name, age, score FROM students WHERE age >= 18;
このようにして、new_students テーブルには、students テーブル内の 18 歳以上の学生の情報が含まれます。
クエリ結果を別のテーブルに直接挿入するだけでなく、INSERT INTO SELECT ステートメントを使用して、クエリ結果のみを含む新しいテーブルを作成することもできます。
CREATE TABLE new_table AS SELECT column1, column2, ... FROM table WHERE condition;
このようにして、new_table はクエリ結果を作成して含めます。
概要
INSERT INTO SELECT ステートメントは、1 つのテーブル (またはクエリ結果) 内の特定の行を選択し、それらを別のテーブルに挿入します (または新しいテーブルを作成します)。この関数は非常に強力で、簡単にコピー、フィルタリング、新しいテーブルの作成を行うことができます。
以上がselect 構文への挿入の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。