PostgreSQL SELECT INTO
Summary: neste tutorial, aprenderá como utilizar o PostgreSQL SELECT INTO declaração para criar uma nova tabela a partir do conjunto de resultados de uma consulta.
Se estiver à procura da forma de seleccionar dados em variáveis, verifique a declaração PL/pgSQL SELECT INTO.
Introdução ao PostgreSQL SELECT INTO declaração
O PostgreSQL SELECT INTO declaração cria uma nova tabela e insere dados retornados de uma consulta na tabela.
A nova tabela terá colunas com os mesmos nomes que as colunas do conjunto de resultados da consulta. Ao contrário de uma declaração regular SELECT, a declaração SELECT INTO não devolve um resultado ao cliente.
O seguinte ilustra a sintaxe do PostgreSQL SELECT INTO declaração:
Code language: SQL (Structured Query Language) (sql)SELECT select_listINTO new_table_nameFROM table_nameWHERE search_condition;
Para criar uma nova tabela com a estrutura e os dados derivados de um conjunto de resultados, especifica-se o novo nome da tabela após a INTO palavra-chave.
O TEMP ou TEMPORARY a palavra-chave é opcional; permite criar uma tabela temporária em vez disso.
O UNLOGGED a palavra-chave, se disponível, tornará a nova tabela como uma tabela não registada.
O WHERE cláusula permite especificar as linhas das tabelas originais que devem ser inseridas na nova tabela. Além da cláusula WHERE, pode usar outras cláusulas na cláusula SELECT declaração para a SELECT INTO declaração como INNER JOINLEFT JOINGROUP BY, e HAVING.
Nota que não pode utilizar a cláusula SELECT INTO declaração em PL/pgSQL porque interpreta a cláusula INTO de forma diferente. Neste caso, pode utilizar a declaração CREATE TABLE AS que fornece mais funcionalidade do que a SELECT INTO declaração.
PostgreSQL SELECT INTO exemplos
Utilizaremos a tabela film da base de dados de amostras para a demonstração.

A seguinte declaração cria uma nova tabela chamado film_r que contém filmes com a classificação R e duração do aluguer 5 dias a partir da tabela film.
Code language: SQL (Structured Query Language) (sql)SELECT film_id, title, rental_rateINTO TABLE film_rFROM filmWHERE rating = 'R'AND rental_duration = 5ORDER BY title;
Para verificar a criação da tabela, pode consultar os dados da tabela film_r:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM film_r;

A seguinte declaração cria uma tabela temporária chamada short_film que contém os filmes cuja duração é inferior a 60 minutos.
Code language: SQL (Structured Query Language) (sql)
O seguinte mostra os dados da tabela short_film:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM short_film;

Neste tutorial, aprendeu como utilizar o PostgreSQL SELECT INTO declaração para criar uma nova tabela a partir do conjunto de resultados de uma consulta.