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

異なるMySQLデータベースの列を持つ2つのテーブル間でデータを移動するにはどうすればよいですか?


このためには、INSERTSELECTステートメントを使用する必要があります。構文は次のとおりです

INSERT INTO
yourDatabaseName1.yourTableName1(yourColumnName1,yourColumnName2,....N)
SELECT yourColumnName1,yourColumnName2,....N FROM
yourdatabaseName2.yourTableName2;

ここでは、次の2つのデータベースを使用しています

  • サンプル
  • テスト

「テスト」データベースに最初のテーブルを作成しましょう

<送信>

mysql> use test;
Database changed
mysql> create table send
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(20)
   -> );
Query OK, 0 rows affected (1.19 sec)

挿入コマンドを使用して、最初のテーブルにいくつかのレコードを挿入します。クエリは次のとおりです

mysql> insert into send(Name) values('John');
Query OK, 1 row affected (0.20 sec)
mysql> insert into send(Name) values('Carol');
Query OK, 1 row affected (0.40 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する

mysql> select *from send;

以下は出力です

+----+-------+
| Id | Name  |
+----+-------+
| 1  | John  |
| 2  | Carol |
+----+-------+
2 rows in set (0.00 sec)

次に、「サンプル」データベースに2番目のテーブルを作成します

<受信>

mysql> use sample;
Database changed
mysql> create table receive
   -> (
   -> UserId int,
   -> UserName varchar(20)
   -> );
Query OK, 0 rows affected (0.59 sec)

上記のように、2番目のテーブル「受信」にはレコードがありません。

次に、異なるデータベースの異なる列を持つ2つのテーブル間でデータを移動してみましょう。クエリは次のとおりです

mysql> insert into sample.receive(UserId,UserName)
   -> select Id,Name from test.send;
Query OK, 2 rows affected (0.21 sec)
Records: 2 Duplicates: 0 Warnings: 0

テーブルsample.receiveのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from receive;

以下は、異なるデータベースのあるテーブルから別のテーブルに日付を正常に移動したことを示す出力です

+--------+----------+
| UserId | UserName |
+--------+----------+
| 1      | John     |
| 2      | Carol    |
+--------+----------+
2 rows in set (0.00 sec)

  1. ORDER BY?を使用して、2つの異なるテーブルから2つの異なる列を表示します。

    このために、ORDERBY句とともにUNIONを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1 (    Amount int ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values(234); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable1 val

  2. MySQLテーブルからデータを削除した後に1で自動インクリメントするにはどうすればよいですか?

    これには、TRUNCATETABLEコマンドを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1796      (      StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,      StudentName varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにい