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

クエリ結果からテーブルにデータを入力すると、MySQLになりますか?


クエリ結果からテーブルにデータを入力するには、次の構文を使用します。

INSERT yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,..........N)
SELECT yourColumnName1,yourColumnName2,yourColumnName3,..........N FROM yourAnotherTableName;

上記の構文を理解するために、テーブルを作成しましょう。最初の表は次のとおりで、いくつかのレコードがあります。テーブルを作成するためのクエリは次のとおりです。

mysql> create table PopulateTableDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),
   -> Amount int,
   -> ArrivalDateTime datetime,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.68 sec)

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

mysql> create table PopulateTableDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),
   -> Amount int,
   -> ArrivalDateTime datetime,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.68 sec)

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

mysql> insert into PopulateTableDemo(Name,Amount,ArrivalDateTime) values('John',456,'2018-02-4');
Query OK, 1 row affected (0.17 sec)
mysql> insert into PopulateTableDemo(Name,Amount,ArrivalDateTime)
values('Carol',1000,'2019-10-21');
Query OK, 1 row affected (0.17 sec)
mysql> insert into PopulateTableDemo(Name,Amount,ArrivalDateTime) values('Sam',970,'2019-07-25');
Query OK, 1 row affected (0.14 sec)
mysql> insert into PopulateTableDemo(Name,Amount,ArrivalDateTime) values('Larry',1050,'2015-10-28');
Query OK, 1 row affected (0.16 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from PopulateTableDemo;

出力は次のとおりです。

+----+-------+--------+---------------------+
| Id | Name  | Amount | ArrivalDateTime     |
+----+-------+--------+---------------------+
|  1 | John  | 456    | 2018-02-04 00:00:00 |
|  2 | Carol | 1000   | 2019-10-21 00:00:00 |
|  3 | Sam   | 970    | 2019-07-25 00:00:00 |
|  4 | Larry | 1050   | 2015-10-28 00:00:00 |
+----+-------+--------+---------------------+
4 rows in set (0.00 sec)

これで、2番目のテーブルを作成し、上記のテーブルの値を入力できます。 2番目のテーブルを作成するためのクエリは次のとおりです。

mysql> create table PopulateQueryFromAnotherTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> UserName varchar(20),
   -> Salary int,
   -> DepartureDateTime datetime,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (1.30 sec)

PopulateTableDemoである最初のテーブルからPopulateQueryFromAnotherTableに値を入力するクエリは次のとおりです。

mysql> insert PopulateQueryFromAnotherTable(UserName,Salary,DepartureDateTime)
   -> select Name,Amount,ArrivalDateTime from PopulateTableDemo;
Query OK, 4 rows affected (0.15 sec)
Records: 4 Duplicates: 0 Warnings: 0

次に、selectステートメントを使用して2番目のテーブルレコードを確認します。クエリは次のとおりです。

mysql> select *from PopulateQueryFromAnotherTable;

出力は次のとおりです。

+----+----------+--------+---------------------+
| Id | UserName | Salary | DepartureDateTime   |
+----+----------+--------+---------------------+
|  1 | John     | 456    | 2018-02-04 00:00:00 |
|  2 | Carol    | 1000   | 2019-10-21 00:00:00 |
|  3 | Sam      | 970    | 2019-07-25 00:00:00 |
|  4 | Larry    | 1050   | 2015-10-28 00:00:00 |
+----+----------+--------+---------------------+
4 rows in set (0.00 sec)

  1. 単一のクエリでIN()を使用してMySQLテーブルからレコードを削除する

    テーブルを作成しましょう- mysql> create table DemoTable1922    (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1922(StudentNa

  2. テーブルの個別の列から平均を選択するMySQLクエリ?

    平均を取得するには、AVG()を使用し、それをDISTINCTとともに使用して、個別のレコードから計算します。まずテーブルを作成しましょう- mysql> create table DemoTable1934    (    StudentName varchar(20),    StudentMarks int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into