GNU/Linux >> Znalost Linux >  >> Linux

Jak exportovat tabulku z MySQL do CSV

Úvod

Pouze omezený počet aplikací čte nezpracované tabulky MySQL. Soubor CSV bude mnohem pravděpodobněji fungovat s různými databázovými aplikacemi. CSV je standardní formát pro databáze, ve kterém čárka rozlišuje hodnoty z různých řádků a sloupců. Další výhodou souborů CSV je, že jsou čitelné pro člověka.

Tento podrobný průvodce vám ukáže, jak exportovat databázi MySQL do souboru CSV.

Předpoklady

  • Přístup k příkazovému řádku/oknu terminálu
  • Uživatelský účet s právy root nebo sudo
  • Uživatelský účet MySQL s právy root
  • Předkonfigurovaný účet phpMyAdmin (volitelné)

Exportujte MySQL do CSV pomocí phpMyAdmin

Nástroj phpMyAdmin poskytuje grafické rozhraní pro správu vašich databází MySQL. Můžete jej použít k exportu kterékoli z jeho sledovaných databází do souboru CSV.

  1. Začněte přihlášením do phpMyAdmin.
  2. Poté klikněte na Databáze tlačítko na horním banneru.
  1. V seznamu databází klikněte na odkaz na databázi, kterou chcete exportovat. V tomto příkladu jsme vybrali uživatele databáze.
  1. Na další obrazovce se zobrazí seznam tabulek v dané databázi. Zaškrtněte políčka u tabulek, které chcete exportovat.
  2. Klikněte na tlačítko Exportovat tlačítko na banneru.
  1. Opusťte Metodu exportu nastavit tak, jak je. Použijte Formát z rozbalovací nabídky vyberte CSV a klikněte na Přejít .
  1. Dialogové okno vás vyzve k zadání umístění, kam chcete uložit soubor CSV.

Export z MySQL do CSV pomocí příkazového řádku

Jednoduchý export můžete provést tak, že vyberete všechna data v tabulce a určíte umístění, kam je chcete uložit.

Začněte otevřením prostředí MySQL a poté se přepněte na databázi, kterou chcete exportovat.

Zadejte následující příkaz:

SELECT * FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

Nahraďte myTable se skutečným názvem tabulky z vaší databáze. Můžete nahradit \tmp\myExportFile.csv s jakýmkoli jiným názvem souboru nebo umístěním. Ujistěte se, že jste ponechali .csv název souboru na konci.

Další možnosti exportu z MySQL

Chcete-li určit jednotlivé sady dat k exportu z tabulky:

SELECT column1, column2, column3, column4
FROM myTable
WHERE column2 = 'value';

Nahraďte column1 (a zbytek) se skutečnými názvy sloupců, které chcete exportovat. Ujistěte se, že používáte FROM příkaz k určení tabulky, ze které exportujete. WHERE příkaz je volitelný a umožňuje exportovat pouze řádky, které obsahují konkrétní hodnotu. Nahraďte value se skutečnou hodnotou, kterou chcete exportovat. Například:

SELECT order_date, order_number, order_status
FROM current_orders
WHERE order_status='pending';

Export a časové razítko souboru CSV

Pomocí následujícího příkazu exportujte do souboru CSV a přidejte časové razítko času vytvoření souboru:

SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');
SET @FOLDER = '\tmp';
SET @PREFIX = 'myTable';
SET @EXT    = '.csv';
SET @CMD = CONCAT("SELECT * FROM myTable INTO OUTFILE '",@FOLDER,@PREFIX,@TS,@EXT,
"' FIELDS ENCLOSED BY '\"'
 TERMINATED BY ';'
ESCAPED BY '\"'"," 
LINES TERMINATED BY '\r\n';");
PREPARE statement FROM @CMD;
EXECUTE statement;

Jako obvykle nahraďte myTable se skutečným názvem tabulky, kterou exportujete.

Export se záhlavími sloupců

Použijte UNION příkaz k přidání záhlaví sloupců do exportovaného souboru:

(SELECT 'column1','column2','column3','column4')
UNION
(SELECT column1, column2, column3, column4
FROM myTable
INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n')

Zacházení s hodnotami NULL

Pokud jsou v databázi nějaké hodnoty null (prázdné), tento proces je exportuje jako písmeno N . NULL můžete nahradit hodnoty s jiným řetězcem textu, který dává větší smysl:

SELECT column1, column2, IFNULL(column3, 'N/A')
FROM myTable INTO OUTFILE '\tmp\myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY '"' LINES
TERMINATED BY '\r\n');

V tomto případě IFNULL příkaz hledá prázdné hodnoty ve column3 . Když je najde, nahradí je textovým řetězcem N/A .

Exportujte MySQL do CSV pomocí mysqldump

Můžete použít mysqldump exportovat databázi MySQL do souboru CSV. Do příkazového řádku zadejte následující:

mysqldump --tab=/var/lib/mysql-files/ --fields-enclosed-by='"' --fields-terminated-by=',' --lines-terminated-by='\n' myTable

Tento příkaz vytvoří kopii databáze myTable v /var/lib/mysql-files .

Exportujte MySQL do CSV pomocí CSV Engine

V některých případech můžete ke změně tabulky použít CSV engine v MySQL. Tato metoda nebude fungovat, pokud tabulka MySQL má index nebo pokud tabulka používá auto_increment . Použijte následující příkaz:

ALTER TABLE myTable ENGINE=CSV;

Tento příkaz změní formát databáze na CSV. Poté můžete zkopírovat soubor CSV do jiného systému.


Linux
  1. Jak opravit poškozenou tabulku databáze MySQL

  2. Jak zkopírovat tabulku z jedné databáze mysql do jiné databáze mysql

  3. Jak krmit mysql dotazy z bash

  1. Jak kopírovat tabulky MySQL mezi databázemi

  2. Jak importovat exportní databázi v MYSQL MariaDB

  3. Jak mohu exportovat oprávnění z MySQL a poté importovat na nový server?

  1. Jak vytvořit databázi MySQL v Workbench

  2. Jak exportovat tabulku PostgreSQL do CSV

  3. Jak importovat soubor CSV do databáze MySQL?