PostgreSQL – CREAR TABLA COMO

En PostgreSQL , la declaración CREATE TABLE AS se usa para crear una nueva tabla y llenarla con los datos devueltos por una consulta.

Syntax:
CREATE TABLE new_table_name
AS query;

Analicemos la sintaxis anterior:

  • Primero, especifique el nuevo nombre de la tabla después de la cláusula CREATE TABLE.
  • Finalmente, proporcione una consulta cuyo conjunto de resultados se agregue a la nueva tabla después de la palabra clave AS.

La palabra clave TEMPORARY o TEMP le permite crear una tabla temporal:

Syntax:
CREATE TEMP TABLE new_table_name 
AS query;

La palabra clave UNLOGGED permite que la nueva tabla se cree como una unlogged tabla:

Syntax:
CREATE UNLOGGED TABLE new_table_name
AS query;

Las columnas de la nueva tabla tendrán los nombres y tipos de datos asociados con las columnas de salida de la cláusula SELECT . Si desea que las columnas de la tabla tengan nombres diferentes, puede especificar las columnas de la nueva tabla después del nuevo nombre de la tabla como se muestra a continuación:

Syntax:
CREATE TABLE new_table_name ( column_name_list)
AS query;

En caso de querer evitar un error creando una nueva tabla que ya existe, se puede utilizar la opción SI NO EXISTE de la siguiente manera:

Syntax:
CREATE TABLE IF NOT EXISTS new_table_name
AS query;

Por ejemplo, usaremos la base de datos de muestra (es decir, dvdrental ).
Ejemplo 1:
En este ejemplo, usaremos la película y la film_category tabla de la base de datos de muestra para crear una tabla de películas de acción que pertenece a la categoría 1 usando la siguiente declaración:

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 ;

Ahora podemos verificar la nueva tabla usando la siguiente declaración:

SELECT * FROM action_film ORDER BY title;

Producción:

Ejemplo 2:
en este ejemplo, crearemos una nueva tabla film_rating y la completaremos con los datos de resumen de la film tabla usando la siguiente declaración:

CREATE TABLE IF NOT EXISTS film_rating (rating, film_count) 
AS 
SELECT
    rating,
    COUNT (film_id)
FROM
    film
GROUP BY
    rating;

Ahora, para verificar la nueva tabla, use la siguiente declaración:

SELECT * FROM film_rating;

Producción:

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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