Articles

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:

SELECT select_listINTO new_table_nameFROM table_nameWHERE search_condition;
Code language: SQL (Structured Query Language) (sql)

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 JOINLEFT JOINGROUP 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.

PostgreSQL SELECT INTO tabla de ejemplo

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.

SELECT film_id, title, rental_rateINTO TABLE film_rFROM filmWHERE rating = 'R'AND rental_duration = 5ORDER BY title;
Code language: SQL (Structured Query Language) (sql)

Para verificar la creación de la tabla, puedes consultar los datos de la tabla film_r:

SELECT * FROM film_r;
Code language: SQL (Structured Query Language) (sql)

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:

SELECT * FROM short_film;
Code language: SQL (Structured Query Language) (sql)

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

Dejar una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *