logo

Export tabuľky MySQL do CSV

MySQL má funkciu exportovať tabuľku do súboru CSV. Formát súboru CSV je hodnota oddelená čiarkami, ktorú používame na výmenu údajov medzi rôznymi aplikáciami, ako sú Microsoft Excel , Goole Docs a Open Office. Je užitočné mať údaje MySQL vo formáte súboru CSV, ktorý nám umožňuje analyzovať a formátovať ich tak, ako chceme. Je to obyčajný textový súbor, ktorý nám pomáha veľmi jednoducho exportovať dáta.

MySQL poskytuje jednoduchý spôsob exportu akejkoľvek tabuľky do súborov CSV uložených na databázovom serveri. Pred exportom údajov MySQL musíme zabezpečiť nasledujúce veci:

  • Proces MySQL servera má prístup na čítanie/zápis do určeného (cieľového) priečinka, ktorý obsahuje súbor CSV.
  • Zadaný súbor CSV by v systéme nemal existovať.

Na export tabuľky do súboru CSV použijeme súbor SELECT DO....OUTFILE vyhlásenie. Toto vyhlásenie je komplimentom NAČÍTAŤ ÚDAJE príkaz, ktorý sa používa na zapisovanie údajov z tabuľky a ich následné exportovanie do určeného formátu súboru na hostiteľskom serveri. Je to zabezpečiť, aby sme mali privilégium na používanie tejto syntaxe.

 SELECT column_lists INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/filename.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''' LINES TERMINATED BY '
'; 

Túto syntax môžeme použiť aj s príkazom hodnôt na export údajov priamo do súboru. Nasledujúce vyhlásenie to vysvetľuje jasnejšie:

 SELECT * FROM (VALUES ROW(1,2,3,4),ROW(5,6),ROW(7,8)) AS table1 INTO OUTFILE '/tmp/selected_values.txt'; 

Ak chceme exportovať všetky stĺpce tabuľky , použijeme nižšie uvedenú syntax. Pomocou tohto príkazu bude poradie a počet riadkov riadené ZORADIŤ PODĽA a LIMIT doložka.

gimp ukladanie ako jpeg
 TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
';; 

Z vyššie uvedeného

RIADKY UKONČENÉ ,, : Používa sa na označenie riadkov riadkov v súbore, ktoré sú ukončené operátorom čiarky. Každý riadok obsahuje údaje každého stĺpca v súbore.

POLIA UZAVRETÉ OD ''' : Používa sa na určenie poľa súboru uzavretého do dvojitých úvodzoviek. Zabraňuje hodnotám, ktoré obsahujú oddeľovače čiarkou. Ak sú hodnoty uvedené v úvodzovkách, nerozpoznáva čiarku ako oddeľovač.

Miesto uloženia exportovaného súboru

Miesto uloženia každého exportovaného súboru v MySQL je uložené v predvolenej premennej secure_file_priv . Môžeme vykonať nižšie uvedený príkaz, aby sme získali predvolenú cestu exportovaného súboru.

 mysql> SHOW VARIABLES LIKE 'secure_file_priv'; 

Po vykonaní poskytne výsledok nasledovne, kde môžeme vidieť túto cestu: C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/ ako predvolené umiestnenie súboru. Táto cesta sa použije v čase spustenia príkazu exportu.

Export tabuľky MySQL do CSV

Ak chceme zmeniť predvolené umiestnenie exportu súboru CSV špecifikovaného v secure_file_priv premennú, musíme upraviť my.ini konfiguračný súbor. Na platforme Windows sa tento súbor nachádza na tejto ceste: C:ProgramDataMySQLMySQL Server X.Y .

Ak chceme exportovať údaje MySQL, najprv musíme vytvoriť a databázy s aspoň jedným tabuľky . Túto tabuľku použijeme ako príklad.

java reťazec indexof

Môžeme vytvoriť a databázy a tabuľky spustením kódu nižšie v editoroch, ktoré používame:

 CREATE DATABASE testdb; USE testdb; CREATE TABLE employee_detail ( ID int NOT NULL AUTO_INCREMENT, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL, Phone varchar(15) DEFAULT NULL, City varchar(25) DEFAULT NULL, PRIMARY KEY (ID), UNIQUE KEY unique_email (Email), UNIQUE KEY index_name_phone (Name,Phone) ) INSERT INTO employee_detail ( Id, Name, Email, Phone, City) VALUES (1, 'Peter', '[email protected]', '49562959223', 'Texas'), (2, 'Suzi', '[email protected]', '70679834522', 'California'), (3, 'Joseph', '[email protected]', '09896765374', 'Alaska'), (4, 'Alex', '[email protected]', '97335737548', 'Los Angeles'), (5, 'Mark', '[email protected]', '78765645643', 'Washington'), (6, 'Stephen', '[email protected]', '986345793248', 'New York'); 

Ak vykonáme SELECT príkazu, uvidíme nasledujúci výstup:

Export tabuľky MySQL do CSV

Exportujte údaje MySQL vo formáte CSV pomocou príkazu SELECT INTO ... OUTFILE

Ak chcete exportovať údaje tabuľky do súboru CSV, musíme vykonať dotaz takto:

 SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Získame nasledujúci výstup, kde môžeme vidieť, že je ovplyvnených šesť riadkov. Je to preto, že špecifikovaná tabuľka obsahuje iba šesť riadkov.

markdown s obrázkami
Export tabuľky MySQL do CSV

Ak znova vykonáme rovnaký príkaz, MySQL vygeneruje chybové hlásenie, ktoré možno vidieť vo výstupe nižšie:

Export tabuľky MySQL do CSV

Chybové hlásenie nám hovorí, že zadaný názov súboru už v zadanom umiestnení existuje. Ak teda exportujeme nový súbor CSV s rovnakým názvom a umiestnením, nemožno ho vytvoriť. Môžeme to vyriešiť buď odstránením existujúceho súboru v zadanom umiestnení alebo premenovaním názvu súboru, aby sa vytvoril na rovnakom mieste.

Súbor CSV vytvorený v zadanom umiestnení môžeme overiť alebo nie tak, že prejdeme na danú cestu takto:

Export tabuľky MySQL do CSV

Keď otvoríme tento súbor, bude vyzerať ako na obrázku nižšie:

Export tabuľky MySQL do CSV

Na obrázku vidíme, že číselné polia sú v úvodzovkách. Tento štýl môžeme zmeniť pridaním OPTIONALLY doložka pred ENCLOSED BY :

 SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''' LINES TERMINATED BY '
'; 

Export údajov s nadpisom stĺpca

Niekedy chceme exportovať údaje spolu s nadpismi stĺpcov, vďaka ktorým je súbor pohodlný. Exportovaný súbor je zrozumiteľnejší, ak prvý riadok súboru CSV obsahuje nadpisy stĺpcov. Záhlavia stĺpcov môžeme pridať pomocou UNION VŠETKO vyhlásenie takto:

 SELECT 'Id', 'Name', 'Email', 'Phone', 'City' UNION ALL SELECT Id, Name, Email, Phone, City FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS TERMINATED BY ';' ENCLOSED BY ''' ESCAPED BY ''' LINES TERMINATED BY '
'; 

V tomto dotaze vidíme, že sme pridali nadpis pre každý názov stĺpca. Výstup môžeme overiť tak, že prejdeme na zadanú adresu URL, kde prvý riadok obsahuje nadpis pre každý stĺpec:

Export tabuľky MySQL do CSV

Exportujte tabuľku MySQL vo formáte CSV

MySQL OUTFILE nám tiež umožňuje exportovať tabuľku bez zadania akéhokoľvek názvu stĺpca. Na export tabuľky vo formáte súboru CSV môžeme použiť nasledujúcu syntax:

 TABLE employee_detail ORDER BY City LIMIT 1000 INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Ak vykonáme vyššie uvedený príkaz, náš nástroj príkazového riadka vytvorí nasledujúci výsledok. To znamená, že špecifikovaná tabuľka obsahuje šesť riadkov, ktoré sa exportujú do zamestnanec_zaloha.csv súbor.

Export tabuľky MySQL do CSV

Spracovanie nulových hodnôt

Niekedy majú polia v sade výsledkov hodnoty NULL, potom cieľový súbor (typ exportovaného súboru) bude obsahovať N namiesto NULL. Tento problém môžeme vyriešiť nahradením hodnoty NULL za „nepoužije sa (N/A)“ pomocou IFNULL funkciu. Nižšie uvedené vyhlásenie to vysvetľuje jasnejšie:

 SELECT Name, Email, Phone, IFNULL(Phone, 'N/A') FROM employee_detail INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/employee_backup.csv' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
'; 

Exportujte tabuľku do formátu CSV pomocou MySQL Workbench

Ak nechceme pristupovať k databázovému serveru pre export CSV súboru, MySQL poskytuje iný spôsob, t.j. pomocou MySQL Workbench. Workbench je nástroj GUI na prácu s databázou MySQL bez použitia nástroja príkazového riadka. Umožňuje nám exportovať sadu výsledkov výpisu do formátu CSV v našom lokálnom systéme. Aby sme to dosiahli, musíme postupovať podľa nasledujúcich krokov:

  • Spustite príkaz/dotaz a získajte jeho sadu výsledkov.
  • Potom na paneli výsledkov kliknite na 'exportovať sadu záznamov do externého súboru' možnosť. Sada záznamov sa používa pre sadu výsledkov.
  • Nakoniec sa zobrazí nové dialógové okno. Tu musíme zadať názov súboru a jeho formát. Po vyplnení detailu kliknite na Uložiť tlačidlo. Nasledujúci obrázok to vysvetľuje jasnejšie:
Export tabuľky MySQL do CSV

Teraz môžeme overiť výsledok prechodom na zadanú cestu.

porovnateľná java