クエリ結果からテーブルにデータを入力すると、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)
-
単一のクエリで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
-
テーブルの個別の列から平均を選択するMySQLクエリ?
平均を取得するには、AVG()を使用し、それをDISTINCTとともに使用して、個別のレコードから計算します。まずテーブルを作成しましょう- mysql> create table DemoTable1934 ( StudentName varchar(20), StudentMarks int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into