PostgreSQL SELECT INTO - 从结果集创建一个新表
本文介绍了如何在 PostgreSQL 中使用 SELECT INTO 语句从一个结果集创建一个新表。
PostgreSQL SELECT INTO 语句允许您从一个查询的结果创建一个新表并将结果集插入到新表,它与 CREATE TABLE ... AS 语句功能相同。
PostgreSQL SELECT INTO 语法
要使用 PostgreSQL SELECT INTO 语句创建一个新表,请遵循以下语法:
sql
SELECT column_list
INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
[other_clauses]解释说明:
column_list是查询语句要返回的中的列或者表达式的列表。这些列最终成为新表中的列。 您可以使用DISTINCT。INTO之后的new_table是要创建的表的名字。TEMPORARY或者TEMP代表新表是一个临时表。TABLE关键字是可以省略。other_clauses是SELECT语句中可用的子句,这包括:
PostgreSQL SELECT INTO 示例
在 Sakila 示例数据库 中, film存储了一个 DVD 商店中的可以租赁的所有的影片。
使用 SELECT INTO 完整复制影片表
要将 film 表的所有的行复制到一个新表 film_copy,请使用下面的语句:
sql
SELECT *
INTO TABLE film_copy
FROM film;sql
SELECT 1000以下语句从新表中查询数据已验证表是否创建成功:
sql
SELECT count(*) FROM film_copy;sql
count
-------
1000
(1 row)使用 SELECT INTO 完整复制部分行和列
要将 film 表所有评级为 G 的影片的标题复制到一个新表 film_ranting_g_title,请使用下面的语句:
sql
SELECT title
INTO TABLE film_ranting_g_title
FROM film
WHERE rating = 'G';sql
SELECT 178以下语句从新表中查询数据已验证表是否创建成功:
sql
SELECT * FROM film_ranting_g_title;sql
title
---------------------------
ACE GOLDFINGER
AFFAIR PREJUDICE
AFRICAN EGG
ALAMO VIDEOTAPE
AMISTAD MIDSUMMER
ANGELS LIFE
ANNIE IDENTITY
ARMAGEDDON LOST
ATLANTIS CAUSE
AUTUMN CROW
BAKED CLEOPATRA
...
(178 row)结论
在 PostgreSQL 中,您可以使用 SELECT INTO 语句从查询结果集创建新表。
