数据库psql——copy命令(将数据库查询结果导出)
一、copy概述
- 
 copy 命令用于表与文件(和标准输出,标准输入)之间的相互拷贝 copy to由表至文件,copy from由文件至表 copy 命令是到数据库服务端找文件,以超级用户执行导入导出权限,适合数据库管理员操作; copy命令在客户端执行导入客户端的数据文件,权限要求没那么高,适合开发,测试人员使用 copy与copy 命令都能实现数据文件与表的数据传递,两者都在psql环境下执行
 
二、copy基本语法+示例
1、语法参数说明:
# 导出命令(copy to的导出速度非常快):
COPY { table_name [ ( column_name [, ...] ) ] | ( query) }    
TO { filename | PROGRAM command | STDOUT }   
 [ [ WITH ] (option [, ...] ) ] 
# 导入命令:
COPY table_name [ ( column_name [, ...] ) ]
    FROM { filename | PROGRAM command | STDIN }
    [ [ WITH ] ( option [, ...] ) ]  
2、将数据库查询结果导出csv
# 命令:
COPY { table_name [ ( column_name [, ...] ) ] | ( query) }    
TO { filename | PROGRAM command | STDOUT }   
 [ [ WITH ] (option [, ...] ) ] 
# 示例:
COPY user TO /tmp/data/test.csv WITH csv;
# 导出指定的属性:
COPY user(name,password) TO /tmp/data/test.csv WITH csv;
# 使用select 语句:
COPY (select * from user where   id=) TO /tmp/data/test.csv WITH csv;
# 指定要导出哪些字段:
COPY (select name,age from user) TO /tmp/data/test.csvWITH csv header; 
3、将文件导入到表中(导入csv)
# 命令:
COPY table_name [ ( column_name [, ...] ) ]
    FROM { filename | PROGRAM command | STDIN }
    [ [ WITH ] ( option [, ...] ) ]
# 示例:导入命令基本与导出一样,只是将TO 改为 FROM
COPY user_1 FROM /tmp/data/test.csv WITH csv;
# 如果导出的时候,指定了header属性,那么在导入的时候,也需要指定:
COPY user_1(name, age) FROM /tmp/data/test.csv WITH csv header;
				       
			          下一篇:
			            SQLServer 数据库 视图实验练习 
			          
			        