쿼리 결과에서 테이블을 채우려면 다음 구문을 사용하십시오.
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)
이제 두 번째 테이블을 만들고 위의 테이블에서 값을 채울 수 있습니다. 두 번째 테이블을 생성하는 쿼리는 다음과 같습니다.
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 문을 사용하여 두 번째 테이블 레코드를 확인합니다. 쿼리는 다음과 같습니다.
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)