Ú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.
- Začněte přihlášením do phpMyAdmin.
- Poté klikněte na Databáze tlačítko na horním banneru.
- V seznamu databází klikněte na odkaz na databázi, kterou chcete exportovat. V tomto příkladu jsme vybrali uživatele databáze.
- Na další obrazovce se zobrazí seznam tabulek v dané databázi. Zaškrtněte políčka u tabulek, které chcete exportovat.
- Klikněte na tlačítko Exportovat tlačítko na banneru.
- 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 .
- 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.