CREATE TABLE 表名 AS SELECT 语句

本文探讨了使用SQL语句'CREATE TABLE...AS SELECT...'进行表复制的方法,指出该操作仅复制表数据和结构,不包含约束。并演示了如何在特定条件下仅复制表结构。
SQL> select * from dept;
 
DEPTNO DNAME          LOC
------ -------------- -------------
ACCOUNTING     NEW YORK
RESEARCH       DALLAS
SALES          CHICAGO
OPERATIONS     BOSTON
 
SQL> create table dept2 as select * from dept;
 
Table created
 
SQL> select * from dept;
 
DEPTNO DNAME          LOC
------ -------------- -------------
ACCOUNTING     NEW YORK
RESEARCH       DALLAS
SALES          CHICAGO
OPERATIONS     BOSTON
 
SQL> select * from dept2;
 
DEPTNO DNAME          LOC
------ -------------- -------------
ACCOUNTING     NEW YORK
RESEARCH       DALLAS
SALES          CHICAGO
OPERATIONS     BOSTON

SQL> create table dept3 as select * from dept where 1 = 2;
 
Table created
 
SQL> select * from dept3;
 
DEPTNO DNAME          LOC
------ -------------- -------------
 
SQL> select OWNER from user_constraints where table_name = 'DEPT';
 
OWNER
--------------------------------------------------------------------------------
SCOTT
 
SQL> select OWNER from user_constraints where table_name = 'DEPT2';
 
OWNER
--------------------------------------------------------------------------------

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
Connected as scott

由上面的使用 CREATE TABLE 表名 AS SELECT 语句可以看出:

    1:只会复制表数据和表结构,不会有任何约束。

    2:当 where 条件不成立时,只复制表结构,没有任务数据。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值