MySQL でテーブルをコピーする

Preet Sanghavi 2023年1月30日
  1. CREATE TABLE ... AS SELECT ステートメントを使用してテーブルを複製する
  2. WHERE 句を使用した部分データを含むテーブルのクローン化
MySQL でテーブルをコピーする

このチュートリアルは、MySQL でテーブルのコピーを作成するためのさまざまな方法を探求することを目的としています。

ソーステーブルはコピーされるテーブルとも呼ばれ、クローンテーブルと呼ばれる宛先テーブルは、MySQL サーバー内の同じデータベースまたは個別のデータベースからのものにすることができます。

MySQL でテーブルをコピーするために、次の方法を検討します。

  • CREATE TABLE ... AS SELECT ステートメントを使用してテーブルを複製します。
  • WHERE 句を使用して、部分的なデータでテーブルをクローンします。

始める前に、操作するダミーデータセットを作成します。ここでは、テーブル student_details とその中のいくつかの行を作成します。

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

上記のクエリは、学生の名前と名前を含む行とともにテーブルを作成します。データのエントリを表示するには、次のコードを使用します。

SELECT * FROM student_details;

前述のコードは次の結果をもたらします。

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

次に、students_data_backup という名前で上記のテーブルのコピーを作成しましょう。

CREATE TABLE ... AS SELECT ステートメントを使用してテーブルを複製する

テーブルコピーを作成するための最も基本的な方法の 1つは、CREATE TABLE ... AS SELECT ステートメントを使用することです。この操作は、次のコードで実行できます。

-- Basic copy table creation
create table students_data_backup as select * from student_details;

前述のコードは、ソーステーブルとして機能する student_details テーブルから students_data_backup という名前のコピーテーブルを作成します。この新しいテーブル students_data_backup は、次のクエリで視覚化できます。

select * from students_data_backup;

前述のコードを出力すると、次のような一時テーブルが作成されます。

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

WHERE 句を使用した部分データを含むテーブルのクローン化

場合によっては、特定の特定の部分のみを複製する必要があります。WHERE 句と CREATE TABLE ... AS SELECT ステートメントを使用して、この操作を実行できます。

student_details テーブルのクローンを部分的に作成してみましょう。最初の 5つの stu_id のみのデータを使用してテーブルのクローンを作成することを選択します。

この操作は、次のコードで実行できます。

-- Cloning the student_details table with where clause
create table students_data_backup as select * from student_details WHERE stu_id <= 5;

指定されたコードサンプルは、次の出力を生成します。

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah

ご覧のとおり、student_details テーブルのコピーが作成されていますが、最初の 5つの stu_id のみが含まれています。

この手法を使用すると、要件に応じて特定のテーブルから部分的なデータのクローンを作成できます。上記の 2つの方法を使用すると、ソーステーブルのコピーを簡単に作成できます。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - MySQL Table