📅  最后修改于: 2023-12-03 15:17:47.310000             🧑  作者: Mango
当我们需要创建一个新表时,我们通常会使用 CREATE TABLE
语句来创建一个空表,并根据需要添加列和约束。但有时我们可能希望从现有表中复制一些数据,并使用这些数据创建一个新表。在这种情况下,我们可以使用 CREATE TABLE AS SELECT
语句从现有表中选择行并将它们插入新表。
CREATE TABLE new_table_name AS SELECT * FROM existing_table_name;
通过这个语句,我们可以使用一个 SELECT
语句从现有表中选择数据,并将这些数据插入一个新的表中。新表的结构将被确定,以匹配 SELECT
语句的列。该语句还可以包括其他 SELECT
语句中的所有选项,如 WHERE
、GROUP BY
和 ORDER BY
。
例如,我们可以从名为 customers
的现有表中创建一个名为 new_customers
的新表。新表将包含 customers
表中的所有数据和列。
CREATE TABLE new_customers AS SELECT * FROM customers;
我们还可以使用 WHERE
子句选择要复制的行。
CREATE TABLE new_customers AS SELECT * FROM customers WHERE state = 'NY';
此语句将复制 customers
表中所有状态为 NY
的行,并将它们插入到 new_customers
表中。
SELECT
语句的列结构自动确定。因此,确保 SELECT
语句中列的顺序和类型正确,以避免不必要的错误。IF NOT EXISTS
选项检查表是否已经存在。SELECT
语句中存在任何聚合函数,新表将包含聚合结果。通过这个简单的 CREATE TABLE AS SELECT
语句,我们可以使用现有数据快速创建一个新表。它可以帮助我们节省时间和精力,并简化我们的代码。