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

MySQLの選択結果を挿入しますか?出来ますか?


選択の結果を挿入するたびに値を使用する必要はありません。 selectの結果を挿入するには、最初に2つのテーブルを作成しましょう。

最初のテーブルクエリは次のとおりです-

< FirstTableDemo>
mysql> create table FirstTableDemo
   −> (
   −> StudentId int,
   −> StudentName varchar(100)
   −> );
Query OK, 0 rows affected (0.41 sec)

次に、2番目のテーブルを作成し、その後、INSERTSELECTコマンドを使用して2番目のテーブルレコードを最初のテーブルに挿入します。

2番目のテーブルを作成するためのクエリ-

<SecondTableDemo>

mysql> create table SecondTableDemo
   −> (
   −> Id int,
   −> Name varchar(100)
   −> );
Query OK, 0 rows affected (0.47 sec)

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

mysql> insert into SecondTableDemo values(1,'John');
Query OK, 1 row affected (0.14 sec)

mysql> insert into SecondTableDemo values(2,'Sam');
Query OK, 1 row affected (0.27 sec)

これで、2番目のテーブルに2つのレコードがあります。 selectステートメントを使用してテーブルのすべてのレコードを表示するクエリは次のとおりです-

mysql> select *from SecondTableDemo;

以下は出力です-

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

INSERT SELECTステートメントを使用して、2番目のテーブルのすべてのレコードを最初のテーブルに挿入します-

mysql> insert into FirstTableDemo(StudentId,StudentName)
   −> select Id,Name from SecondTableDemo as tbl1
   −> where tbl1.Id not in (select StudentId from FirstTableDemo);
Query OK, 2 rows affected (0.57 sec)
Records: 2 Duplicates: 0 Warnings: 0

これで、2番目のテーブルのすべてのレコードが最初のテーブルに挿入されました。 selectステートメントを使用してクロスチェックしましょう。クエリは次のとおりです-

mysql> select *from FirstTableDemo;

以下は出力です-

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
|         1 | John        |
|         2 | Sam         |
+-----------+-------------+
2 rows in set (0.00 sec)

  1. テーブル全体を返すSELECTを使用したMySQLプロシージャ

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

  2. MySQLのテーブルAと比較しているときに、データがテーブルBにない場合は、データをテーブルCに挿入しますか?

    これには、テーブルAとBで左結合を使用します。最初のテーブルを作成しましょう- mysql> create table demo20 −> ( −> id int, −> name varchar(20) −> ); Query OK, 0 rows affected (1.87 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo20 values(100,'John'); Query OK, 1 row affect