Úvod
PostgreSQL (nebo Postgres ) je objektově-relační systém pro správu databází podobný MySQL, ale podporuje vylepšenou funkčnost a stabilitu. Jednou z vynikajících funkcí je, že můžete exportovat tabulku Postgres do .CSV soubor. To může být užitečné zejména při přenosu tabulky do jiného systému nebo při importu do jiné databázové aplikace.
V tomto tutoriálu se naučíte exportovat tabulku Postgres do souboru .CSV pomocí \copy
a COPY
příkazy.
Předpoklady
- V systému nainstalovaný PostgreSQL
- Existující databáze v PostgreSQL
- Okno terminálu / příkazový řádek (Ctrl+Alt+T)
Než začnete s PostgreSQL
Postgres lze nainstalovat na Windows, Mac, Linux a lze jej dokonce nasadit v kontejneru Docker. Tato příručka vás provede postupem pomocí Ubuntu Linux. Nicméně všechny exportní příkazy lze použít v jakémkoli jiném podporovaném operačním systému.
Pokud Postgres nemáte, můžete si jej nainstalovat stažením softwaru z webu vývojáře. Nainstalujte Postgres na Ubuntu z výchozích úložišť zadáním následujícího:
sudo apt-get install postgresql
Jakmile se služba spustí, musíte vytvořit nebo importovat databázi.
Exportujte data z tabulky do .CSV pomocí příkazu COPY
V psql jsou dva různé příkazy.
Základní použití COPY
příkaz je následující:
COPY db_name TO [/path/to/destination/db_name.csv] DELIMITER ‘,’ CSV HEADER;
Nahraďte db_name
se skutečným názvem vaší databáze a /path/to/destination
se skutečným umístěním, kam chcete soubor .CSV uložit.
Například ve Windows můžete chtít uložit kopii do C:\tmp\db_name.csv . V Linuxu může být výchozí cesta /tmp/db_name.csv . Poté můžete otevřít soubor .CSV a zobrazit obsah tabulky v mírně odlišném formátu. Rozdíl můžete vidět v příkladu níže.
Nejprve vypíšeme obsah zadané tabulky v skořápce psql pomocí příkazu:
SELECT * FROM [table_name]
Výstup zobrazuje hodnoty v naší vzorové tabulce jako na obrázku níže:
Nyní jej můžete porovnat s odpovídajícím souborem .CSV. Data exportovaná z výše uvedené tabulky se objeví v souboru .CSV, jak je vidět na následujícím obrázku:
Export konkrétních sloupců z tabulky do .CSV
Můžete použít COPY
příkaz k cílení na konkrétní sloupce:
COPY [db_name](column1,column2,column3) TO [/path/to/destination/db_name_partial.csv] DELIMITER ‘,’ CSV HEADER;
Exportujte data z tabulky do .CSV pomocí příkazu \copy
Použijte \copy
příkaz při práci na dálku. Umožňuje vám exportovat data ze serveru do souboru .CSV na místním klientském počítači. Použijte jej následovně:
\copy (SELECT * FROM [db_name]) to [/path/to/destination] CSV HEADER
Nahraďte db_name
s názvem zdrojové databáze. Nahraďte /path/to/destination
se skutečným umístěním souboru .CSV. V systému Windows můžete exportovat do C:tmpdb_name.csv . V Linuxu můžete exportovat do /tmp/db_name.csv .
Soubor \copy
příkaz vyžaduje pouze zvýšená oprávnění pro klientský systém. To je užitečné, pokud nemáte dostatečná oprávnění ke spuštění COPY
příkaz na serveru. Také \copy
vám umožňuje použít relativní cestu.
Můžete například zadat desktop/db_name.csv v systému Windows a uloží se na plochu aktuálního uživatele.