Oracle从现有表创建表
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_id和customer_name。
创建表示例3:从多个表复制选定的列
语法:
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);
本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:Oracle从现有表创建表
本文地址:http://www.codeinn.net/oracle/1874.html
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:Oracle从现有表创建表
本文地址:http://www.codeinn.net/oracle/1874.html