データベースで作業を行う上で、あるテーブルから別のテーブルにデータをコピーするケースは多々あります。SQLでこれを実現するには、INSERT INTO SELECT文が非常に便利です。この記事では、INSERT INTO SELECT文の基本的な使用方法から応用例まで詳しく解説します。
目次
何故INSERT INTO SELECT文を使用するのか
データベースでデータを管理する際、あるテーブルのデータを別のテーブルにコピーしたいというニーズはよくあります。このような場合に役立つのが、INSERT INTO SELECT文です。手作業でデータを移すよりも、この命令を使った方が効率的であり、エラーのリスクも低くなります。
INSERT INTO SELECT文の基本構文
基本的な構文は以下の通りです。
INSERT INTO target_table (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM source_table
WHERE condition;
この構文を使うことで、source_tableからtarget_tableにデータをコピーすることができます。
実践例:基本的な使用方法
以下は、`employees`テーブルから`backup_employees`テーブルにデータをコピーする基本的な例です。
INSERT INTO backup_employees (employee_id, name, position)
SELECT employee_id, name, position
FROM employees;
このSQL文を実行すると、`employees`テーブルの全てのデータが`backup_employees`テーブルにコピーされます。
条件を指定してコピー
WHERE句を使用して、特定の条件を満たすデータのみをコピーすることも可能です。
INSERT INTO backup_employees (employee_id, name, position)
SELECT employee_id, name, position
FROM employees
WHERE position = 'マネージャー';
データのマッピング
INSERT INTO SELECT文では、コピー元とコピー先のテーブルのカラム名が異なる場合も対応できます。
カラム名が異なる場合のマッピング
INSERT INTO backup_employees (backup_id, employee_name, job_position)
SELECT employee_id, name, position
FROM employees;
複数のテーブルからデータをコピー
JOINを使用して、複数のテーブルからデータをコピーすることもできます。
INSERT INTO project_summary (project_id, employee_name)
SELECT p.id, e.name
FROM projects p
JOIN employees e ON p.employee_id = e.employee_id;
まとめ
INSERT INTO SELECT文は、データベースでデータを効率よくコピーするための強力なツールです。基本的な使用方法から応用例まで、この命令を使いこなすことで、データベース操作がより簡単かつ効率的になります。
created by Rinker
¥4,554
(2024/11/23 11:00:41時点 Amazon調べ-詳細)
コメント