Oracle 的例子
SQL> SELECT2
3 FROM
4 test_main;
ID VALUE
---------- ----------
1 ONE
2 TWO
SQL> CREATE TABLE test_t AS SELECT FROM test_main;
表已创建。
SQL> select FROM test_t;
ID VALUE
---------- ----------
1 ONE
2 TWO
postgresql 的例子
Test=# CREATE TABLE test_t AS (SELECT FROM test_main) ;SELECT 2
Test=# select from test_t;
id | value
----+-------
1 | ONE
2 | TWO
(2 行记录)
我不知道是不是 Postgresql 那里要加个括号啊, 哈哈。
是不是oracle数据库?如果是的你可以用copy命令。
用法:copy
from
数据库1的用户名/数据库1的密码@数据库1的名称
insert
into
a(a1,a2,a3,a4)
using
select
b1,b2,b3,b4
from
b;
代码在数据库2执行。
如你有数据库db1,db2(假设用户名和密码为scott,tiger),要从db2把数据复制到db1
copy
from
scott/tiger@db2
insert
into
a(a1,a2,a3,a4)
using
select
b1,b2,b3,b4
from
b;
不能一步到位。这样复制后,主键,索引只能是后期处理。
ALTER TABLE 表名 ADD Constraint PK_表名 Primary key(列名)
CREATE INDEX [tid_index] ON [dbo][tb_test]([tid])
分为两种情况,一种是目标表不存在,另一种是目标表已存在,语法是不同的。
分别以sqlserver和oracle为例,两者略有不同。
sqlserver中,如果目标表不存在:
select into 新表名 from 旧表名;sqlserver中,如果目标表已存在:
insert into 新表名 select from 旧表名;oracle中,如果目标表不存在:
create table 新表名 as select from 旧表名;oracle中,如果目标表已存在(方法同sqlserver):
insert into 新表名 select from 旧表名;
1、既复制表结构也复制表内容的SQL语句:
CREATE TABLE tab_new AS SELECT FROM tab_old;
2、只复制表结构不复制表内容的SQL语句:
CREATE TABLE tab_new AS SELECT FROM tab_old WHERE 1=2;
3、不复制表结构,只复制内容的sql语句:
SELECT vale1, value2 into Table2 from Table1
扩展资料:
SQL中常用的语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
4、说明:删除新表
drop table tabname
5、说明:增加一个列
Alter table tabname add column col type
6、说明:添加主键
Alter table tabname add primary key(col)
7、说明:删除主键
Alter table tabname drop primary key(col)
8、说明:创建索引
create [unique] index idxname on tabname(col…)
9、删除索引
drop index idxname
在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。
1、 表结构相同的表,且在同一数据库(如,table1,table2)
Sql :
复制代码代码如下:
insert into table1 select from table2 (完全复制)
insert into table1 select distinct from table2(不复制重复纪录)
insert into table1 select top 5 from table2 (前五条纪录)
2、不在同一数据库中(如,db1 table1,db2 table2)
sql:
[code]
insert into db1table1 select from db2table2 (完全复制)
insert into db1table1 select distinct from db2table2(不复制重复纪录)
insert into tdb1able1 select top 5 from db2table2 (前五条纪录)
3、表结构不同的表或复制部分纪录(如,dn_user,dn_user2)
a 建一个新表[DN_UserTemp](在老表dn_user上增加一列)
复制代码代码如下:
CREATE TABLE [DN_UserTemp] ( [Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL)
[Id] [idtype] NOT NULL ,
[Name] [fntype] NOT NULL ,
[Descript] [dstype] NULL ,
[LogonNm] [idtype] NOT NULL ,
[Password] [idtype] NULL ,
[Gender] [char] (1) NULL ,
[Quited] [booltype] NOT NULL,
[OffDuty] [booltype] NOT NULL ,
[Stopped] [booltype] NOT NULL,
[OSBind] [booltype] NOT NULL,
[Domain] [idtype] NULL ,
[EMail] [fntype] NULL ,
[UnitId] [idtype] NULL ,
[BranchId] [idtype] NULL ,
[DutyId] [idtype] NULL ,
[LevelId] [idtype] NULL ,
[ClassId] [idtype] NULL ,
[TypeId] [idtype] NULL ,
[IP] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[ExpireDT] [datetime] NULL ,
[Sort] [int] NOT NULL ,
[AllowDel] [booltype] NOT NULL,
[UnitChief] [booltype] NOT NULL,
[BranchChief] [booltype] NOT NULL ,
[UnitDeputy] [booltype] NOT NULL ,
[BranchDeputy] [booltype] NOT NULL ,
[Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL
) ON [PRIMARY]
b 将dn_uer2的数据拷入dn_usertemp
sql:insert into dn_usertemp select from dn_user2
c将dn_usertemp 拷入dn_user
sql:
复制代码代码如下:
declare @i int
declare @j int
declare @Name fntype
set @i=1
select @j=count() from dn_usertemp
while @i<@j 1
begin
select @Name=Name from dn_usertemp where Num=@i
print @Name
insert into dn_user (Name) values (@Name) where Num=@i
select @i=@i 1
end
MySql数据库复制表数据
将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:
复制代码代码如下:
CREATE TABLE mytbl_new LIKE productionmytbl;
INSERT mytbl_new SELECT FROM productionmytbl;
第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。
第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。
注:productionmytbl是指定要复制表的数据库名称为 production 。它是可选的。
假如没有production ,MySQL数据库将会假设mytbl在当前 *** 作的数据库。
另外:在mysql数据库中复制数据为:
复制代码代码如下:
select into desTable from sourceTable在mssql中支持,在mysql中不支持
insert into desTable select from sourceTable
以上就是关于postgresql数据库中怎么复制表结构和完全复制表,如oracle中create table a as select * from b全部的内容,包括:postgresql数据库中怎么复制表结构和完全复制表,如oracle中create table a as select * from b、数据库B无表,如何复制sql数据库A表到数据库B、如何把数据库中某个表中的数据与结构(包括主外键,索引)全部复制到另一张表中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)