1.不同用户之间的表数据复制 
对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus:
insert into B.new(select * from A.old);

如果需要加条件限制,比如复制当天的A.old数据
insert into B.new(select * from A.old where date=GMT); 
蓝色斜线处为选择条件

2.同用户表之间的数据复制 
用户B下有两个表:B.x和B.y,如果需要从表x转移数据到表y,使用用户B登陆sqlpus即可:
insert into 目标表y select * from x where log_id>'3049' -- 复制数据 
注意:要示目标表y必须事先创建好
如insert into bs_log2 select * from bs_log where log_id>'3049'

3.B.x中个别字段转移到B.y的相同字段 
--如果两个表结构一样
insert into table_name_new select * from table_name_old 
如果两个表结构不一样:
insert into y(字段1,字段2) select 字段1,字段2 from x

4.只复制表结构 加入了一个永远不可能成立的条件1=2,则此时表示的是只复制表结构,但是不复制表内容   
create table 用户名.表名 as select * from 用户名.表名 where 1=2
如create table zdsy.bs_log2 as select * from zdsy.bs_log where 1=2

5完全复制表(包括创建表和复制表中的记录)
create table test as select * from bs_log  --bs_log是被复制表

6 将多个表数据插入一个表中
insert into 目标表test(字段1。。。字段n) (select 字段1.。。。。字段n) from 表 union all select 字段1.....字段n from 表

7、创建用户budget_zlgc,权限和budget相同,(A、只复制所有表结构

B、复制所有表所有信息)

创建用户budget_zlgc,并导出budge用户数据

exp userid="\"sys/sys as sysdba"\" file='/backup/expdb/oa0824.dmp' log='/backup/expdb/oaex0825.log'  owner=budget ignore=Y buffer=256000000

A、budget用户所有表,表结构和budget相同,(无数据)

imp userid="\"sys/sys as sysdba"\" file='/backup/expdb/oa0824.dmp' log='/backup/expdb/oa0825.log'  fromuser=budget touser=budget_zlgc ignore=Y buffer=256000000 rows=n

B、budget用户所有表,表结构、数据和budget相同

imp userid="\"sys/sys as sysdba"\" file='/backup/expdb/oa0824.dmp' log='/backup/expdb/oa0825.log'  fromuser=budget touser=budget_zlgc ignore=Y

=====================================================
oracle
和mssql中复制表的比较

库内数据复制
MS SQL Server: 
Insert into 复制表名称 select 语句 (复制表已经存在)
select 字段列表 into 复制表名称 from 表 (复制表不存在)

Oracle :
Insert into 复制表名称 select 语句 (复制表已经存在)
create table 复制表名称 as select 语句 (复制表不存在)

多表更新、删除

一条更新语句是不能更新多张表的,除非使用触发器隐含更新,我这里说的意思是:根据其他表数据更新你要更新的表一般形式:
MS SQL Server 
update ASET 字段1=B表字段表达式,字段2=B表字段表达式from BWHERE 逻辑表达式

Oracle 
update ASET 字段1=(select 字段表达式 from B WHERE ...),字段2=(select 字段表达式 from B WHERE ...) WHERE 逻辑表达式
从以上来看,感觉oracle没有ms sql好,主要原因:假如A需要多个字段更新,MS_SQL 语句更简练你知道刚学数据库的人怎么做上面这件事情

吗,他们使用游标一条一条的处理

====导入==导出===========
(1)导出
exp ff/ff@orcl file='d:ff.dmp' tables=customers direct=y
使用exp 输出。输入的为需要备份的用户表的账号和密码,根据提示一直点回车就OK 结束后将会出现一个ff.DMP文件,此文件为备份数据。
导出时可以选择导出:1.整个数据库(需具备dba权限);2.用户(包括表、视图和其它);3.表(只包含表,不导出视图);

(2)导入
create user ly identified by pw default tablespace users quota 10M on users; 
创建新用户 用户名为ly 密码为pw 默认表空间为此空间,配额为10M
grant connect,resource,dba to ly;
赋予ly权限(1.连接;2.资源;3.dba权限,必须具备才能执行导入!)
grant create session,create table,create view,unlimited tablespaces to ly; 
赋予ly其它常用权限(1.登陆到服务器,2.创建表,3.创建视图,4.无限表空间)
imp ly/ly@ORCL fromuser=ff touser=ly file='d:ff.dmp' constraints=n
使用 imp 输入。输入需要导入的用户的用户名和密码 然后点回车,根据提示一直到再次要求你输入用户名的地方。

=================

sql_server不同数据库间复制表
不同数据库表结构 和数据的复制 : 
目标数据库不存在要导入的表时: 
example: 
xuexiao为目标数据库,teaching为源数据库,dbo.course_list已经存在于teaching,想在没有此表的xuexiao库中复制一个用下面的语句完成

: 
select * into xuexiao.dbo.course_list from teaching.dbo.course_list 
不同数据库之间复制表的数据的方法

当表目标表存在时: 
insert into 目的数据库..表 select * from 源数据库..表

当目标表不存在时: 
select * into 目的数据库..表 from 源数据库..表 
=================================================
如下,表a是数据库中已经存在的表,b是准备根据表a进行复制创建的表:

  1、只复制表结构的sql
create table b as select * from a where 1<>1

  2、即复制表结构又复制表中数据的sql
create table b as select * from a

  3、复制表的制定字段的sql
create table b as select row_id,name,age from a where 1<>1//前提是row_id,name,age都是a表的列

  4、复制表的指定字段及这些指定字段的数据的sql
create table b as select row_id,name,age from a

  以上语句虽然能够很容易的根据a表结构复制创建b表,但是a表的索引等却复制不了,需要在b中手动建立。

  5、insert into 会将查询结果保存到已经存在的表中
insert into t2(column1, column2, ....) select column1, column2, .... from t1

1、获得单个表和索引DDL语句的方法: 
----------------------------------------------------------------------- 
set   heading   off; 
set   echo   off; 
Set   pages   999; 
set   long   90000; 
spool   get_single.sql 
select   dbms_metadata.get_ddl( 'TABLE ', 'SZT_PQSO2 ', 'SHQSYS ')   from   dual; 
select   dbms_metadata.get_ddl( 'INDEX ', 'INDXX_PQZJYW ', 'SHQSYS ')   from   dual; 
spool   off;

uffer=256000000

oracle 复制表数据,复制表结构的更多相关文章

  1. Mysql 复制表数据(表结构相同)

    [1]Mysql 复制表数据(表结构相同) -- 方式一: create table table_name_dest as select * from table_name_src; -- 方式二: ...

  2. sql的存储过程实例--动态根据表数据复制一个表的数据到另一个表

    动态根据表数据复制一个表的数据到另一个表 把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中 如:mac_id=12345678910,则后两位10 对应表为track ...

  3. SQL语句-批量插入表(表数据插表)

    批量插入表(表数据插表) ****1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,val ...

  4. 生产环境zabbix3.2上亿的表数据通过表分区的方式进行历史数据清理

    生产环境zabbix3.2上亿的表数据通过表分区的方式进行历史数据清理 zabbix服务器经常报警io过载,在报警的时候发现是数据库在删除历史数据时耗时较长 数据库积攒了大量的历史数据信息,主要集中在 ...

  5. mysql复制表数据或表结构到新表中

    MySQL复制表数据到新表的几个步骤. 1.MySQL复制表结构及数据到新表 CREATE TABLE new_table SELECT * FROM old_table; 2.只复制表结构到新表 C ...

  6. mysql 复制表数据,表结构的3种方法

    什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份.如果用mysqldump比较麻烦,备份.MYD,.MYI这样的 ...

  7. MSSQL复制表数据及表结构

    目标表存在: insert into 目标表 select * from 原表 目标表不存在: select * into 目标表 from 原表 复制表结构 select * into 目标表 fr ...

  8. mysql复制表数据,多表数据复制到一张表

    对于mysql 复制表数据可以使用 insert into select 方式 示例: $sql="insert into icarzoo.provider(providerId,provi ...

  9. sqlserver 两 表 数据 复制 (附加 跨服务器 查询的方法)

    一 : 这个sql 语句 可以快速的 将 一 个旧表 中的指定字段的数据 复制到 另一个新表的指定字段中 insert into dbo.Customer ( CustomerId , Custome ...

  10. plsql 数据迁移——导出表结构,表数据,表序号

    场景:项目开发完之后要部署在不同的环境进行测试,这时候就需要将数据库中的表结构,序号,数据进行迁移,这时候就需要能够熟练的使用plsql. 问题: 导出的表结构,在另一个数据库中无法导入 部分表的数据 ...

随机推荐

  1. mahout历史(二)

    mahout历史 Apache Mahout起源于2008年,经过两年的发展,2010年4月ApacheMahout最终成为了Apache的顶级项目.Mahout 项目是由 ApacheLucene( ...

  2. 洛谷 P1223 排队接水

    洛谷 P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共 ...

  3. 【MongoDB】The connection between two tables

    In mongoDB, there are two general way to connect with two tables. Manual Connection and use DBRef 1. ...

  4. Google 免费公共 DNS 服务器

    Google 免费公共 DNS 服务器 http://googleblog.blogspot.com/2009/12/introducing-google-public-dns.html DNS 8. ...

  5. vue-cli打包项目后,可以修改配置文件

    问题: 前端需要修改后台服务器地址url,写好的配置文件会在npm run build 后压缩在一起,传到运行的前端服务器上后,需要到前端打包的源码,找到url地址进行修改.如果不在打包的源码修改,则 ...

  6. 洛谷 P2025 脑力大人之监听电话

    P2025 脑力大人之监听电话 题目背景 画外音: (声明:不要管前面那个,纯属意外,现已经重新编题,绝对原创) 上次海选,我们选出了参赛者中的20%参加本次比赛,现在我们将进行第二轮的筛选,这次的比 ...

  7. 使用Struts2和jQuery EasyUI实现简单CRUD系统(七)——数据分页处理

    上篇完毕多选删除的功能之后,接下来就是做分页功能了.曾经的分页是一个麻烦的问题.并且数据量巨大的时候,直接把这些元素取出来显然速度较慢,所以取一定区间的数据还是高效的. watermark/2/tex ...

  8. [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''&lt;h1 style=&quot;text-align: center;&quot;&gt;php

    [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL s ...

  9. (转) 通过UUID在vSphere虚拟机内外识别硬盘

    转自:http://ju.outofmemory.cn/entry/28398 简单介绍下应用场景:开发基于虚拟化IaaS的一些应用就免不了要跟虚拟机(VM)打交道,因为VM逻辑上独立于宿主机(hos ...

  10. 每天自动备份MySQL数据库的shell脚本

    经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的.一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行.我们需要一种安全的,每天自动备份的方法 ...