主頁 > 知識庫 > PostgreSQL copy 命令教程詳解

PostgreSQL copy 命令教程詳解

熱門標簽:江蘇400電話辦理官方 地圖標注要花多少錢 電銷機器人能補救房產中介嗎 電話機器人怎么換人工座席 濟南外呼網絡電話線路 400電話申請客服 天津開發(fā)區(qū)地圖標注app 移動外呼系統模擬題 廣州電銷機器人公司招聘

報文介紹PostgreSQL copy 命令,通過示例展示把查詢結果導出到csv文件,導入數據文件至postgresql。

1. copy命令介紹

copy命令用于在postgreSql表和標準文件系統直接傳輸數據。copy命令讓PostgreSQL 服務器直接讀寫文件,因此文件必須讓PostgreSQL 用戶能夠訪問到。該命令使用的文件是數據庫服務器直接讀寫的文件,不是客戶端應用的文件,因此必須位于服務器本地或被直接訪問的文件,而不是客戶端位置。

copy to 命令拷貝表內容至文件,也可以拷貝select的查詢結果;也就說,如果select后面列出部分字段,則copy to 命令僅拷貝指定字段的結果至文件。準備使用copy to 命令的表必須授予select權限。該命令僅能在表上使用,不能用于視圖;當我們需要拷貝視圖內容時,可以給copy命令傳入sql查詢:

COPY (SELECT * FROM country) TO ‘list_countries.copy';

copy from拷貝文件的數據到數據表。當使用copy from,文件中的每個字段被i順序插入特定字段。如果該命令中的表的列參數未指定則獲取它們的缺省值。使用copy from命令的表必須授予insert權限。

不要混淆copy命令和psql中的 \copy。\copy調用 COPY FROM STDIN 或 COPY TO STDOUT,然后返回數據或存儲可以被psql客戶端訪問的文件數據。因此,當使用\copy時,文件的可訪問性和訪問權限取決于客戶端,而不是服務器。

2. copy命令示例

2.1 從Postgresql導出表

我們能拷貝表至控制臺,并使用豎線(|)作為字段直接的分隔符:

copy customers to stdout(delimiter '|')

拷貝表至文件,使用空格作為字段直接的分隔符:

COPY customers TO '/database/data/test_data.copy' (DELIMITER ' ');

2.2 導入文件至Postgresql表

傳入文件至已經存在的表:

COPY customers FROM '/database/data/test_data.copy' (DELIMITER ' ');

2.3 導出查詢結果至文件

導出查詢結果至文件:

COPY (SELECT * FROM customers WHERE name LIKE 'A%') TO '/data/test_data.copy';

如果需要壓縮數據,使用下面命令:

COPY customers TO PROGRAM 'gzip > /data/test_data.copy.gz';

如果僅導出2列,使用下面命令:

COPY customers(col, col2) TO '/data/test_data.copy' DELIMITER ' ';

如果需要導出二進制文件:

copy customers to 'e:/data.dat' with binary;

導出csv文件:

copy customers to 'e:/data.csv' with csv;

csv文件還有一些其他參數:

DELIMITER – 數據行中分割每個字段的分隔符。csv文件一般使用逗號.

HEADER – 指定csv文件的標題,如果不需要標題行,可以忽略HEADER.

COPY country FROM '/data/test_data.copy' WITH delimiter ',' CSV HEADER;

指定編碼:

COPY country FROM '/data/test_data.copy' WITH delimiter ',' CSV HEADER encoding 'utf-8';

3. 總結

本文介紹PostgreSQL中的copy命令,并通過示例展示了不同的應用場景。使用COPY加載大量行總是比使用INSERT快,COPY會進行一次設置,并且每行的開銷都非常低,尤其是在不涉及觸發(fā)器的情況下。

到此這篇關于PostgreSQL copy 命令教程詳解的文章就介紹到這了,更多相關PostgreSQL copy 命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • postgresql 查看當前用戶名的實現
  • Mac系統重置PostgreSQL密碼的方法示例代碼
  • PostgreSQL的B-tree索引用法詳解
  • Postgresql 如何選擇正確的關閉模式
  • PostgreSQL查看正在執(zhí)行的任務并強制結束的操作方法
  • Postgresql 默認用戶名與密碼的操作

標簽:寶雞 辛集 海西 濮陽 杭州 溫州 榆林 昭通

巨人網絡通訊聲明:本文標題《PostgreSQL copy 命令教程詳解》,本文關鍵詞  PostgreSQL,copy,命令,教程,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PostgreSQL copy 命令教程詳解》相關的同類信息!
  • 本頁收集關于PostgreSQL copy 命令教程詳解的相關信息資訊供網民參考!
  • 推薦文章