本文概述
CREATE TABLE AS语句用于通过复制现有表的列从现有表创建表。
注意:如果以这种方式创建表, 则新表将包含现有表中的记录。
句法:
CREATE TABLE new_table
AS (SELECT * FROM old_table);
创建表示例:复制另一个表的所有列
在此示例中, 我们将通过复制现有表” Customers”中的所有列来创建” newcustomers”表。
CREATE TABLE newcustomers
AS (SELECT * FROM customers WHERE customer_id < 5000);
Table created.
该表被命名为” newcustomers”, 并且具有与” customers”表相同的列。
创建表示例:复制另一个表的选定列
句法:
CREATE TABLE new_table
AS (SELECT column_1, column2, ... column_n
FROM old_table);
让我们举个例子:
CREATE TABLE newcustomers2
AS (SELECT customer_id, customer_name
FROM customers
WHERE customer_id < 5000);
上面的示例将创建一个名为” newcustomers2″的新表。该表包括客户表中指定的列customer_id和customer_name。
创建表示例:从多个表中复制选定的列
句法:
CREATE TABLE new_table
AS (SELECT column_1, column2, ... column_n
FROM old_table_1, old_table_2, ... old_table_n);
让我们举个例子:考虑你已经创建了两个表” regularcustomers”和” irregularcustomers”。
表” regularcustomers”具有三列rcustomer_id, rcustomer_name和rc_city。
CREATE TABLE "regularcustomers"
( "RCUSTOMER_ID" NUMBER(10, 0) NOT NULL ENABLE, "RCUSTOMER_NAME" VARCHAR2(50) NOT NULL ENABLE, "RC_CITY" VARCHAR2(50)
)
/
第二个表” irregularcustomers”也具有三列ircustomer_id, ircustomer_name和irc_city。
CREATE TABLE "irregularcustomers"
( "IRCUSTOMER_ID" NUMBER(10, 0) NOT NULL ENABLE, "IRCUSTOMER_NAME" VARCHAR2(50) NOT NULL ENABLE, "IRC_CITY" VARCHAR2(50)
)
/
在下面的示例中, 我们将创建一个表名” newcustomers3″, 以复制两个表中的列。
例:
CREATE TABLE newcustomers3
AS (SELECT regularcustomers.rcustomer_id, regularcustomers.rc_city, irregularcustomers.ircustomer_name
FROM regularcustomers, irregularcustomers
WHERE regularcustomers.rcustomer_id = irregularcustomers.ircustomer_id
AND regularcustomers.rcustomer_id < 5000);
评论前必须登录!
注册