SQL SELECT INTO文
SQL を使用すると、あるテーブルから別のテーブルに情報をコピーできます。
SELECT INTO 文は、あるテーブルからデータをコピーし、そのデータを別の新しいテーブルに挿入します。
SQL SELECT INTO 文
SELECT INTO 文は、あるテーブルからデータをコピーし、そのデータを別の新しいテーブルに挿入します。
注意:
MySQL データベースは SELECT ... INTO 文をサポートしていませんが、次のものをサポートしていますINSERT INTO ... SELECT 。
もちろん、以下の文を使用してテーブル構造とデータをコピーできます:
CREATE TABLE 新表 AS SELECT * FROM 旧表
SQL SELECT INTO 構文
employees という名前のテーブルがあり、以下のデータが含まれているとします。
| EmployeeID | FirstName | LastName | Age | Department |
|---|---|---|---|---|
| 1 | John | Doe | 30 | Sales |
| 2 | Jane | Smith | 25 | HR |
| 3 | Sam | Brown | 28 | IT |
「...」という名前のemployees_backup新しいテーブルを作成し、employeesテーブル内のすべてのデータを新しいテーブルに挿入するには、次の SQL 文を使用できます。
SELECT * INTO employees_backup FROM employees;
この文を実行すると、新しいemployees_backupテーブルには、年齢が 25 歳より大きい従業員のデータのみが含まれます。
SELECT EmployeeID, FirstName, LastName, Age, Department INTO employees_backup FROM employees WHERE Age > 25;
使用上の注意事項
テーブル構造:
SELECT INTO新しいテーブルが作成され、新しいテーブルの構造は選択した列とデータ型に基づいて決まります。- 新しいテーブルがすでに存在する場合、
SELECT INTO文は失敗します。この場合、INSERT INTO ... SELECT文を使用できます。
データベースのサポート:
SELECT INTO文は SQL Server で非常に一般的ですが、MySQL と PostgreSQL では通常、CREATE TABLE ... AS SELECT文を使用します。
他のデータベースでの代替手段
MySQL と PostgreSQL
MySQL と PostgreSQL では、次の文を使用できます:CREATE TABLE ... AS SELECT同様の機能を実現するには:
CREATE TABLE employees_backup AS SELECT EmployeeID, FirstName, LastName, Age, Department FROM employees WHERE Age > 25;その他の拡張