PostgreSQL SELECT INTO
Resumen: en este tutorial, aprenderá a utilizar la sentencia PostgreSQL SELECT INTO
para crear una nueva tabla a partir del conjunto de resultados de una consulta.
Si buscas la forma de seleccionar datos en variables, échale un vistazo a la sentencia PL/pgSQL SELECT INTO
.
Introducción a la sentencia SELECT INTO de PostgreSQL
La sentencia PostgreSQL SELECT INTO
crea una nueva tabla e inserta en ella los datos devueltos por una consulta.
La nueva tabla tendrá columnas con los mismos nombres que las columnas del conjunto de resultados de la consulta. A diferencia de una sentencia normal SELECT
, la sentencia SELECT INTO
no devuelve un resultado al cliente.
Lo siguiente ilustra la sintaxis de la sentencia PostgreSQL SELECT INTO
:
Code language: SQL (Structured Query Language) (sql)SELECT select_listINTO new_table_nameFROM table_nameWHERE search_condition;
Para crear una nueva tabla con la estructura y los datos derivados de un conjunto de resultados, se especifica el nombre de la nueva tabla después de la palabra clave INTO
.
La palabra clave TEMP
o TEMPORARY
es opcional; permite crear una tabla temporal en su lugar.
La palabra clave UNLOGGED
si está disponible hará que la nueva tabla sea una tabla no registrada.
La cláusula WHERE
permite especificar las filas de las tablas originales que deben insertarse en la nueva tabla. Además de la cláusula WHERE
, puedes utilizar otras cláusulas en la sentencia SELECT
para la sentencia SELECT INTO
como INNER JOIN
LEFT JOIN
GROUP BY
, y HAVING
.
Nota que no puedes utilizar la sentencia SELECT INTO
en PL/pgSQL porque interpreta la cláusula INTO
de forma diferente. En este caso, puedes utilizar la sentencia CREATE TABLE AS
que proporciona más funcionalidad que la sentencia SELECT INTO
.
Ejemplos de SELECT INTO en PostgreSQL
Utilizaremos la tabla film
de la base de datos de ejemplo para la demostración.
La siguiente sentencia crea una nueva tabla llamada film_r
que contiene las películas con la calificación R
y la duración del alquiler 5 días de la tabla 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 la creación de la tabla, puedes consultar los datos de la tabla film_r
:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM film_r;
La siguiente sentencia crea una tabla temporal llamada short_film
que contiene las películas cuya duración es inferior a 60 minutos.
Code language: SQL (Structured Query Language) (sql)
A continuación se muestran los datos de la tabla short_film
:
Code language: SQL (Structured Query Language) (sql)SELECT * FROM short_film;
En este tutorial, has aprendido a utilizar la sentencia PostgreSQL SELECT INTO
para crear una nueva tabla a partir del conjunto de resultados de una consulta.
- ¿Ha sido útil este tutorial?
- SíNo