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