📜  Oracle CREATE TABLE AS语句

📅  最后修改于: 2020-11-13 06:06:09             🧑  作者: Mango

CREATE TABLE AS语句

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);