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 *という形式を使えば、データベースを切り替えることなく、別データベースのテーブルへ直接データをコピーできます。大量のデータを扱う場合も同様の手順で対応可能です。
-
MySQLで別テーブルのIDからユーザー名を取得する方法|JOINの使い方を徹底解説
MySQLでは、別々のテーブルに保存されたデータをIDをキーに関連付けて取得したい場面が多くあります。そのような場合にはJOIN(内部結合)を使うことで、複数のテーブルを結合し、目的のユーザー名を簡単に取り出すことができます。 本記事では、実際にサンプルテーブルを作成しながら、JOINクエリの書き方をステップごとに解説します。 1つ目のテーブル「demo77」を作成する まず、ユーザーID(userid)とユーザー名(username)を格納するテーブルを作成します。useridは主キーとして設定します。 mysql> create table demo77 -> (
-
MySQLであるテーブルから別のテーブルへデータを挿入する方法(INSERT INTO SELECT)
MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. 元となるテーブルを作成する まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。 mysql> create table DemoTable1 -> ( -> Id int, -> Fi