SELECT INTOを使用すると、MySQLの新しいテーブルにデータを簡単にコピーできます。これにより、一時テーブルをすばやく作成できます。
SELECT INTOステートメントは、1つのテーブルからデータをコピーし、それを新しいテーブルに挿入します。 SELECT INTOステートメントは、1つのテーブルからデータを選択し、それを新しいテーブルに挿入します。
SQLSELECTINTO構文
すべての列を同じデータベースの新しいテーブルにコピーします:
SELECT * INTO new_table FROM table_name;
すべての列を別のデータベースの新しいテーブルにコピーします:
SELECT * INTO new_table IN database_name FROM table_name;
必要な列のみを同じデータベースの新しいテーブルにコピーします:
SELECT column_name1,column_name2,.. INTO new_table FROM table_name;
SELECT column_name1,column_name2,.. INTO new_table IN database_name FROM table_name;
注
新しいテーブルは、SELECTステートメントで定義された列名とタイプで作成されます。 AS句を使用して新しい名前を適用できます。
SQLSELECTINTOの例
顧客のバックアップコピーを作成します:
SELECT * INTO Users_Backup FROM Users;
IN句を使用して、テーブルを別のデータベースにコピーします。
SELECT * INTO Users_Backup IN 'Backup_database' FROM Users;
数列だけを新しいテーブルにコピーします:
SELECT User_Name, User_Contact INTO Users_Backup FROM Users;
アメリカの顧客のみを新しいテーブルにコピーします:
SELECT * INTO Users_Backup FROM Users WHERE Country='USA';
複数のテーブルから新しいテーブルにデータをコピーします:
SELECT Users.User_Name, Orders.Order_ID INTO Users_Order_Backup FROM Users LEFT JOIN Orders ON Users.User_ID=Orders.User_ID;
ヒント :SELECT INTOステートメントを使用して、別のスキーマを使用して新しい空のテーブルを作成することもできます。クエリがデータを返さないようにするWHERE句を追加するだけです。