MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLであるデータベースから別のデータベースへテーブルをコピーする方法

MySQLでは、INSERT INTO ... SELECT構文を使うことで、あるデータベースのテーブルデータを別のデータベースへ簡単にコピーできます。

テーブルをコピーする基本構文

別のデータベースへテーブルをコピーする際の基本的な構文は以下の通りです。

INSERT INTO コピー先データベース名.テーブル名 SELECT * FROM コピー元データベース名.テーブル名;

それでは、実際のコマンド例を使いながら手順を詳しく見ていきましょう。

ステップ1:コピー元のテーブルを作成する

まず、CREATEコマンドを使って「business」データベース内に新しいテーブルを作成します。

<business>

mysql> use business;
Database changed
mysql> create table OriginalTable
   -> (
   -> id int
   -> );
Query OK, 0 rows affected (0.46 sec)

ステップ2:コピー先のテーブルを作成する

次に、「test」データベースにも同じ構造のテーブルを作成しておきます。

<test>

mysql> use test;
Database changed
mysql> create table OriginalTable
   -> (
   -> id int
   -> );
Query OK, 0 rows affected (0.47 sec)

なお、コピー先のテーブルがまだ存在しない場合は、あらかじめ同じ構造で作成しておく必要があります。テーブル構造ごと複製したい場合は、CREATE TABLE test.OriginalTable LIKE business.OriginalTable; を使うと便利です。

ステップ3:元のテーブルにデータを挿入する

INSERTコマンドを使って、「business」データベースのテーブルにレコードを挿入します。

mysql> use business;
Database changed
mysql> insert into OriginalTable values(1),(2),(3),(4);
Query OK, 4 rows affected (0.18 sec)
Records: 4  Duplicates: 0  Warnings: 0

挿入されたすべてのレコードを表示して確認してみます。

mysql> select *from OriginalTable;

実行結果は以下の通りです。

+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)

ステップ4:テーブルを別のデータベースへコピーする

ここで、businessデータベースの「OriginalTable」を、別のデータベース「test」へコピーします。INSERT INTO ... SELECT文を次のように実行してください。

mysql> INSERT INTO test.OriginalTable SELECT * from business.OriginalTable;
Query OK, 4 rows affected (0.20 sec)
Records: 4  Duplicates: 0  Warnings: 0

ステップ5:コピー結果を確認する

テーブルが正しくコピーされたかどうかを確認しましょう。

mysql> use test;
Database changed
mysql> select *from OriginalTable;

以下の出力結果から、テーブル「OriginalTable」が2つ目のデータベース(test)へ正常にコピーされたことがわかります。

+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
4 rows in set (0.00 sec)

このように、INSERT INTO データベース名.テーブル名 SELECT *という形式を使えば、データベースを切り替えることなく、別データベースのテーブルへ直接データをコピーできます。大量のデータを扱う場合も同様の手順で対応可能です。

  1. MySQLで別テーブルのIDからユーザー名を取得する方法|JOINの使い方を徹底解説

    MySQLでは、別々のテーブルに保存されたデータをIDをキーに関連付けて取得したい場面が多くあります。そのような場合にはJOIN(内部結合)を使うことで、複数のテーブルを結合し、目的のユーザー名を簡単に取り出すことができます。 本記事では、実際にサンプルテーブルを作成しながら、JOINクエリの書き方をステップごとに解説します。 1つ目のテーブル「demo77」を作成する まず、ユーザーID(userid)とユーザー名(username)を格納するテーブルを作成します。useridは主キーとして設定します。 mysql> create table demo77 -> (

  2. MySQLであるテーブルから別のテーブルへデータを挿入する方法(INSERT INTO SELECT)

    MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. 元となるテーブルを作成する まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。 mysql> create table DemoTable1 -> ( -> Id int, -> Fi