MariaDB SQL

MariaDB Insert Into Select

ssamhago 2023. 7. 7. 16:05
728x90
320x100

MariaDB Insert Into Select

 

 

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을 사용합니다.

 

샘플 DB

 

 

가) 테이블의 행을 다른 테이블에 삽입하는 예

 


먼저 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;

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;

 

region_areas

 

 

 

이상으로 MariaDB insert into select 문을 사용하여 쿼리 결과 집합을 테이블에 삽입하는 방법을 알아봤습니다.


※ 원문출처 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-insert-into-select/

728x90
반응형

'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