ホームページ > よくある問題 > select 構文への挿入の使用

select 構文への挿入の使用

DDD
リリース: 2023-07-06 16:54:03
オリジナル
5694 人が閲覧しました

データベースでは、INSERT INTO SELECT ステートメントを使用して、クエリの結果を別のテーブルに挿入します。 INSERT INTO SELECT ステートメントを使用すると、あるテーブルの内容を別のテーブルに簡単にコピーしたり、クエリ結果に基づいて新しいテーブルを作成したりできます。

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート