【我和openGauss的故事】openGauss逻辑备份恢复
逻辑备份恢复
一、小数据集导入导出
1. copy 或 \copy
可以将文本数据作为数据源导入到数据表中,也可以将数据表或查询结果导出到指定的文件中。
2. copy 与 \copy 的区别
(1)copy 属于SQL命令,\copy属于元命令
(2)copy 导入导出的文件是数据库服务端的文件,\copy导入导出的文件是客户端文件
(3)copy 需要数据库管理员权限才可以执行,\copy任意用户都可以执行
(4)copy 对较大数据集的整体读写效率比 \copy 更好
3. 语法格式
copy 与 \copy 的语法格式与使用方式是一样的,以下以copy为例。
(1)数据导入 copy from
- 将 TXT 文件数据导入到数据表中
copy 表 from '文件路径/文件.txt'
- TXT 文件默认列分隔符为 tab ,如果所指定分隔符不是 tab,可以使用 delimiter 指定
copy 表 from '文件路径/文件.txt' delimiter '分隔符'
- 除了可以导入 TXT 文件,也可以是一些特定表格文件(如 CSV),因为默认文件类型为 TXT,可以通过 with 指定文件类型
- copy 表 from '文件路径/文件.csv' with csv
- CSV 文件比较特殊,既可以看做表格文件也可以看做文本文件,看做文本文件时,默认列与列之间的分隔符为’,’,所以也可以使用以下SQL语句进行数据导入
- copy 表 from '文件路径文件.csv' delimiter ','
(2)数据导出 copy to
- 将数据表导出到指定 TXT 文件中(默认分隔符是 tab)
copy 表 to '文件路径/文件.txt'
- 将数据表导出到指定 TXT 文件中(文件,指定分隔符为’;’)
copy 表 to '文件路径/文件.txt' delimiter ';'
- 将数据表导出到指定 CSV 文件中(默认分隔符为’,’)
copy 表 to '文件路径/文件.csv' with csv
- 将查询结果集导出到指定 CSV 文件中(默认分隔符为’,’)
copy (查询语句) to '文件路径/文件.csv' with csv
-
- 例如:将用户表中年龄大于等于18的用户信息进行导出
copy (select * from t_user where age>=18) to '文件路径/文件.csv' with csv
-
- c