MariaDB insert into select 문을 사용하여 쿼리 결과 집합을 테이블에 삽입하는 방법을 배웁니다.
삽입 문의 값 목록은 리터럴 값이거나 쿼리의 결과 집합일 수 있습니다.
다음은 값 목록이 select 문에서 오는 insert 문의 구문을 보여줍니다.
insert into table_name(column_list)
select select_list
from table_name
...;
이 구문에서:
- 먼저 데이터를 삽입할 테이블 이름과 열 목록을 지정합니다.
- 둘째, 해당 열이 column_list에 해당하는 결과 집합을 반환하는 select 문을 지정합니다.
insert into select 문은 한 테이블에서 다른 테이블로 데이터를 복사하거나 테이블에서 테이블로 요약 데이터를 삽입하는 데 매우 유용할 수 있습니다.
MariaDB Insert Into Select 예제
데모를 위해 샘플 데이터베이스의 테이블 countries 및 regions을 사용합니다.
가) 테이블의 행을 다른 테이블에 삽입하는 예
먼저 small_countries라는 새 테이블을 만듭니다.
create table small_countries(
country_id int primary key,
name varchar(50) not null,
area decimal(10,2) not null,
);
둘째, countries 테이블에서 면적(area)이 50,000km2 미만인 국가를 small_countries 테이블에 삽입합니다.
insert into small_countries
(country_id, name, area)
select
country_id, name, area
from
countries
where
area < 50000;
셋째, small_countries 테이블의 데이터를 불러옵니다.
select *
from small_countries;
나) 테이블의 요약 데이터를 다른 테이블에 삽입하는 예
먼저 지역의 이름과 면적을 저장하는 region_areas라는 테이블을 만듭니다.
create table region_areas(
region_name varchar(100) not null,
region_area decimal(15,2) not null,
primary key(region_name)
);
둘째, countries 및 regions 테이블에서 데이터를 쿼리하여 region_areas 테이블에 삽입합니다.
insert into region_areas
(region_name, region_area)
select
regions.name, sum(area)
from
countries
inner join regions
using (region_id)
group by
regions.name;
셋째, region_areas 테이블의 데이터를 불러옵니다.
select *
from
region_areas
order by
region_area;
이상으로 MariaDB insert into select 문을 사용하여 쿼리 결과 집합을 테이블에 삽입하는 방법을 알아봤습니다.
※ 원문출처 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-insert-into-select/
'MariaDB SQL' 카테고리의 다른 글
MariaDB Delete (0) | 2023.07.18 |
---|---|
MariaDB Update (0) | 2023.07.11 |
MariaDB Insert Multiple Rows (0) | 2023.07.05 |
MariaDB Insert (0) | 2023.06.28 |
MariaDB Except (0) | 2023.06.27 |