Oracle 专题
专题目录
您的位置:database > Oracle专题 > Oracle创建表(create table as)
Oracle创建表(create table as)
作者:--    发布时间:2019-11-20

create table as语句用于通过复制现有表的列从现有表来创建新表。

注意:如果以这种方式创建表,则新表将包含现有表中的记录。

语法:

create table new_table  
as (select * from old_table);

创建表示例1:复制另一个表的所有列

在此示例中,我们通过复制现有表customers中的所有列来创建newcustomers表。

create table newcustomers  
as (select *   from customers  where customer_id < 5000);

新创建的表命名为newcustomers并具有与customers相同的表字段和记录(编号小于5000的所有记录)。

创建表示例2:复制另一个表的选定列

语法:

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的新表。 此表包含customers表中指定的两列:customer_idcustomer_name

创建表示例3:从多个表复制选定的列

语法:

create table new_table  
as (select column_1, column2, ... column_n  
    from old_table_1, old_table_2, ... old_table_n);

下面来看一个例子:假设已经创建了两个表:regularcustomersirregularcustomers

regularcustomers表有三列:rcustomer_idrcustomer_namerc_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_idircustomer_nameirc_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);

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册