PostgreSQL SELECT INTO문을 사용하여 쿼리 결과 집합에서 새 테이블을 만드는 방법
일반 SELECT명령문 과 달리 SELECT INTO명령문은 클라이언트에 결과를 반환하지 않습니다.
SELECT
select_list
INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] new_table_name
FROM
table_name
WHERE
search_condition;
결과 집합에서 파생된 구조와 데이터로 새 테이블을 만들려면 INTO키워드 뒤에 새 테이블 이름을 지정합니다 .
TEMP또는 TEMPORARY키워드는 선택적입니다; 대신 임시 테이블 을 만들 수 있습니다 .
UNLOGGED가능한 경우 키워드는 로깅되지 않은 테이블로 새 테이블을 만들 것입니다.
이 WHERE절을 사용하면 새 테이블에 삽입해야 하는 원래 테이블의 행을 지정할 수 있습니다. WHERE절 외에 SELECT명령문에 , , , 와 SELECT INTO같은 다른 절을 사용할 수 있습니다 .INNER JOINLEFT JOINGROUP BYHAVING
-- film_r에서 등급 R및 대여 기간이 5일인 영화를 포함하는 film이라는 새 테이블을 생성
SELECT
film_id,
title,
rental_rate
INTO TABLE film_r
FROM
film
WHERE
rating = 'R'
AND rental_duration = 5
ORDER BY
title;
SELECT * FROM film_r;
반응형
PostgreSQL CREATE TABLE AS문을 사용하여 쿼리 결과 집합에서 새 테이블을 만드는 방법
CREATE TABLE AS명령문 은 새 테이블을 만들고 쿼리에서 반환된 데이터로 채웁니다.
CREATE TABLE new_table_name
AS query;
- 먼저 CREATE TABLE절 뒤에 새 테이블 이름을 지정합니다 .
- 둘째, AS키워드 뒤에 새 테이블에 결과 집합이 추가된 쿼리를 제공 합니다.
CREATE TEMP TABLE new_table_name
AS query;
-- 새 테이블 열 지정하고 싶다면
CREATE TABLE new_table_name ( column_name_list)
AS query;
-- 새 테이블 생성 오류를 방지하려면
CREATE TABLE IF NOT EXISTS new_table_name
AS query;
CREATE TABLE action_film AS
SELECT
film_id,
title,
release_year,
length,
rating
FROM
film
INNER JOIN film_category USING (film_id)
WHERE
category_id = 1;
SELECT * FROM action_film
ORDER BY title;
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - Sequences (0) | 2021.09.06 |
---|---|
[PostgreSQL] BASIC - SERIAL (0) | 2021.09.06 |
[PostgreSQL] BASIC - CREATE TABLE (0) | 2021.09.06 |
[PostgreSQL] BASIC - Data Types - 2 (0) | 2021.09.06 |
[PostgreSQL] BASIC - Data Types - 1 (0) | 2021.09.06 |
최근댓글