婷婷久久综合九色综合,欧美成色婷婷在线观看视频,偷窥视频一区,欧美日本一道道一区二区

<tt id="bu9ss"></tt>
  • <span id="bu9ss"></span>
  • <pre id="bu9ss"><tt id="bu9ss"></tt></pre>
    <label id="bu9ss"></label>

    當(dāng)前位置:首頁 >  站長(zhǎng) >  數(shù)據(jù)庫 >  正文

    PostgreSQL copy 命令教程詳解

     2021-06-03 17:36  來源: 腳本之家   我來投稿 撤稿糾錯(cuò)

      阿里云優(yōu)惠券 先領(lǐng)券再下單

    報(bào)文介紹PostgreSQL copy 命令,通過示例展示把查詢結(jié)果導(dǎo)出到csv文件,導(dǎo)入數(shù)據(jù)文件至postgresql。

    1. copy命令介紹

    copy命令用于在postgreSql表和標(biāo)準(zhǔn)文件系統(tǒng)直接傳輸數(shù)據(jù)。copy命令讓PostgreSQL 服務(wù)器直接讀寫文件,因此文件必須讓PostgreSQL 用戶能夠訪問到。該命令使用的文件是數(shù)據(jù)庫服務(wù)器直接讀寫的文件,不是客戶端應(yīng)用的文件,因此必須位于服務(wù)器本地或被直接訪問的文件,而不是客戶端位置。

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

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

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

    不要混淆copy命令和psql中的 \copy。\copy調(diào)用 COPY FROM STDIN 或 COPY TO STDOUT,然后返回?cái)?shù)據(jù)或存儲(chǔ)可以被psql客戶端訪問的文件數(shù)據(jù)。因此,當(dāng)使用\copy時(shí),文件的可訪問性和訪問權(quán)限取決于客戶端,而不是服務(wù)器。

    2. copy命令示例

    2.1 從Postgresql導(dǎo)出表

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

    1copy customers to stdout(delimiter '|')

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

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

    2.2 導(dǎo)入文件至Postgresql表

    傳入文件至已經(jīng)存在的表:

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

    2.3 導(dǎo)出查詢結(jié)果至文件

    導(dǎo)出查詢結(jié)果至文件:

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

    如果需要壓縮數(shù)據(jù),使用下面命令:

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

    如果僅導(dǎo)出2列,使用下面命令:

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

    如果需要導(dǎo)出二進(jìn)制文件:

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

    導(dǎo)出csv文件:

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

    csv文件還有一些其他參數(shù):

    DELIMITER – 數(shù)據(jù)行中分割每個(gè)字段的分隔符。csv文件一般使用逗號(hào).

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

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

    指定編碼:

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

    3. 總結(jié)

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

    文章來源:腳本之家

    來源地址:https://www.jb51.net/article/204298.htm

    申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

    相關(guān)文章

    熱門排行

    信息推薦