KES中COPY TO的介绍

金仓数据库KingbaseES中COPY TO的介绍

关键字:

KingbaseES、COPY、人大金仓

什么是COPY TO

在数据库管理系统中,数据的导入导出是非常常见的操作,而COPY命令则是实现数据导入导出的强大工具之一。COPY TO 可以将数据库中的表数据复制的文件中。

COPY TO的部分语法

COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }

TO { 'filename' | PROGRAM 'command' | STDOUT }

其中,

table_name表示需一个现有表的表名;

column_name表示可选的要被复制的列列表。如果没有指定列列表,则该表的所有列(除了生成列)都会被复制。;

query表示其结果要被复制的 SELECT 、 VALUES 、 INSERT 、 UPDATE 或者 DELETE 命令。

filename输入或者输出文件的路径名。一个输入文件的名称可以是一个绝对或相对路径,但一个输出文件的名称必须是绝对路径。

PROGRAM一个要执行的命令。在 COPY FROM 中,输入将从该命令的标准输出读取,而在 COPY TO 中,输出会写入到该命令的标准输入。

STDOUT 指定输出到客户端应用。

COPY TO的实例

1.COPY { table_name [ ( column_name [, ...] ) ] | ( query ) } TO…

  • COPY table_name TO 'filename'

首先,有一个表如下

test=# create table t1(a int, b text);

CREATE TABLE

test=# insert into t1 values(1, 'aaa');

INSERT 0 1

test=# insert into t1 values(2, 'bbb');

INSERT 0 1

test=# select * from t1;

a | b

---+-----

1 | aaa

2 | bbb

(2 rows)

将表中所有数据复制到外部的t1.txt文件中:

test=# copy t1 to '/home/zhangnan/t1.txt';

COPY 2

注意,文件名路径必须是绝对路径,不能是相对路径。

现在可以去t1.txt文件中查看数据是否被成功复制。

[zhangnan@kes_0_14 ~]$ cat t1.txt

1 aaa

2 bbb

  • COPY table_name ( column_name [, ...] ) TO 'filename'

只复制部分列到文件中

test=# copy t1(a) to '/home/zhangnan/t1.txt';

COPY 2

test=# copy t1(b) to '/home/zhangnan/t1.txt';

COPY 2

文件中数据分别为

[zhangnan@kes_0_14 ~]$ cat t1.txt

1

2

[zhangnan@kes_0_14 ~]$ cat t1.txt

aaa

bbb

复制多列的话,用逗号分隔:

test=# copy t1(a,b) to '/home/zhangnan/t1.txt';

COPY 2

  • COPY table_name ( query ) TO 'filename'

query可以是SELECT 、 VALUES 、 INSERT 、 UPDATE 或者 DELETE 命令,其中,对于INSERT 、 UPDATE 以及 DELETE 查询,必须提供一个 RETURNING 子句并且目标关系不能具有会扩展成多条语句的条件规则、 ALSO 规则或者 INSTEAD 规则。

select命令:

test=# copy (select * from t1) to '/home/zhangnan/t1.txt';

COPY 2

insert命令:

test=# copy (insert into t1 values(3,'ccc') returning a) to '/home/zhangnan/t1.txt';

COPY 1

update命令:

test=# copy (update t1 set a=999 where a=1 returning a) to '/home/zhangnan/t1.txt';

COPY 1

delete命令:

test=# copy (delete from t1 where a=2 returning b) to '/home/zhangnan/t1.txt';

COPY 1

2. COPY … TO { 'filename' | PROGRAM 'command' | STDOUT }

在使用copy命令时,上面已经介绍关于{ table_name [ ( column_name [, ...] ) ] | ( query ) }字段的使用,接下来介绍{ 'filename' | PROGRAM 'command' | STDOUT }字段。

  • COPY … TO 'filename'

将表中数据复制到文件当中,文件格式可以是txt,csv等,指定文件时需注意指定绝对路径,在上面实例中,已有该字段的使用,这里不再过多赘述。

  • COPY…TO PROGRAM 'command'

将表中数据复制到一个外部压缩文件中:

test=# copy t1 to program 'gzip > /home/zhangnan/a.gz';

COPY 1

  • COPY …TO STDOUT

可以将数据复制到标准输出:

test=# copy t1 to stdout;

1 sss

总结

COPY TO命令用于将数据库中的数据向外迁移,实现数据备份,以防数据丢失,并且还可以数据共享,方便数据交流和协作,实现了数据交换的灵活性和便利性。

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值