logo

MySQL-exportálási tábla CSV-be

A MySQL rendelkezik egy olyan funkcióval, amellyel egy táblázatot exportálhat a CSV-fájlba. A CSV-fájlformátum egy vesszővel elválasztott érték, amelyet különböző alkalmazások, például a Microsoft Excel , a Goole Docs és az Open Office közötti adatcserére használunk. Hasznos, ha a MySQL-adatok CSV-fájlformátumban vannak, amelyek lehetővé teszik számunkra, hogy a kívánt módon elemezzük és formázzuk azokat. Ez egy egyszerű szöveges fájl, amely segít az adatok nagyon egyszerű exportálásában.

MySQL egyszerű módot biztosít bármely tábla exportálására az adatbázis-kiszolgálón található CSV-fájlokba. A MySQL adatok exportálása előtt meg kell győződnünk a következőkről:

  • A MySQL szerver folyamata olvasási/írási hozzáféréssel rendelkezik a megadott (cél) mappához, amely a CSV fájlt tartalmazza.
  • A megadott CSV-fájl nem létezhet a rendszerben.

A táblázat CSV-fájlba exportálásához a KIVÁLASZTÁS INTO....OUTFILE nyilatkozat. Ez a kijelentés elismerése a ADAT BETÖLTÉS paranccsal, amellyel adatokat írhatunk egy táblából, majd exportálhatunk egy megadott fájlformátumba a kiszolgáló gazdagépén. Ez azért van így, hogy biztosítsuk, hogy rendelkezünk fájljogosultsággal a szintaxis használatához.

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

Ezt a szintaxist értékek utasítással is használhatjuk az adatok közvetlen fájlba történő exportálásához. A következő kijelentés világosabban magyarázza ezt:

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

Ha exportálni akarunk táblázat összes oszlopa , az alábbi szintaxist fogjuk használni. Ezzel az utasítással a sorok sorrendjét és számát a RENDEZÉS és HATÁR kikötés.

java keverés int
 TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
';; 

A fentiekből

SOROK VÉGEZÉSE: ',' : A fájl azon sorainak jelzésére szolgál, amelyeket vessző operátor zár le. Minden sor tartalmazza az egyes oszlopok adatait a fájlban.

MEZŐK: ''' : A fájl mezőjének megadására szolgál dupla idézőjelek között. Megakadályozza a vesszőt tartalmazó értékeket. Ha az értékek dupla idézőjelben vannak, akkor nem ismeri fel a vesszőt elválasztóként.

Az exportált fájl tárolási helye

A MySQL-ben minden exportált fájl tárolási helyét az alapértelmezett változó tárolja biztonságos_fájl_priv . Az alábbi parancs végrehajtásával megkaphatjuk az exportált fájl alapértelmezett elérési útját.

 mysql> SHOW VARIABLES LIKE 'secure_file_priv'; 

A végrehajtás után a következő eredményt adja, ahol láthatjuk ezt az utat: C:/ProgramData/MySQL/MySQL Server 8.0/Feltöltések/ alapértelmezett fájlhelyként. Ezt az elérési utat fogja használni az exportálási parancs futtatásakor.

MySQL-exportálási tábla CSV-be

Ha meg akarjuk változtatni a CSV fájl alapértelmezett exportálási helyét a biztonságos_fájl_priv változót, szerkesztenünk kell a my.ini konfigurációs fájl. Windows platformon ez a fájl ezen az elérési úton található: C:ProgramDataMySQLMySQL Server X.Y .

Ha MySQL adatokat szeretnénk exportálni, először létre kell hoznunk a adatbázis legalább eggyel asztal . Példaként ezt a táblázatot fogjuk használni.

Létrehozhatunk a adatbázis és táblázat az alábbi kód futtatásával az általunk használt szerkesztőkben:

bináris fa java-ban
 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'); 

Ha végrehajtjuk a KIVÁLASZTÁS utasítással a következő kimenetet fogjuk látni:

MySQL-exportálási tábla CSV-be

Exportálja a MySQL-adatokat CSV formátumban a SELECT INTO ... OUTFILE utasítás használatával

A táblázat adatainak CSV-fájlba exportálásához a következőképpen kell végrehajtanunk a lekérdezést:

 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 '
'; 

A következő kimenetet kapjuk, ahol láthatjuk, hogy hat sor érintett. Ez azért van, mert a megadott táblázat csak hat sort tartalmaz.

MySQL-exportálási tábla CSV-be

Ha ugyanazt az utasítást ismét végrehajtjuk, a MySQL hibaüzenetet ad, amely az alábbi kimeneten látható:

jfx java oktatóanyag
MySQL-exportálási tábla CSV-be

A hibaüzenet azt jelzi, hogy a megadott fájlnév már létezik a megadott helyen. Így ha az új CSV-fájlt ugyanazzal a névvel és hellyel exportáljuk, akkor nem hozható létre. Megoldhatjuk ezt vagy törölhetjük a meglévő fájlt a megadott helyen, vagy átnevezhetjük a fájl nevét, hogy ugyanazon a helyen hozzuk létre.

A megadott helyen létrehozott CSV-fájlt ellenőrizhetjük, ha egy adott útvonalra navigálunk az alábbiak szerint:

MySQL-exportálási tábla CSV-be

Amikor megnyitjuk ezt a fájlt, az alábbi képhez hasonlóan fog kinézni:

MySQL-exportálási tábla CSV-be

A képen láthatjuk, hogy a numerikus mezők idézőjelben vannak. Ezt a stílust hozzáadásával megváltoztathatjuk OPCIONÁLIS záradék előtt BEZÁRJA :

 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 '
'; 

Adatok exportálása oszlopfejléccel

Néha adatokat szeretnénk exportálni az oszlopfejlécekkel együtt, amelyek kényelmessé teszik a fájlt. Az exportált fájl érthetőbb, ha a CSV fájl első sora tartalmazza az oszlopfejléceket. Az oszlopfejléceket a segítségével adhatjuk hozzá UNION ALL a következő nyilatkozatot:

 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 '
'; 

Ebben a lekérdezésben láthatjuk, hogy minden oszlopnévhez fejlécet adtunk. A kimenetet úgy tudjuk ellenőrizni, hogy a megadott URL-re navigálunk, ahol az első sor tartalmazza az egyes oszlopok fejlécét:

MySQL-exportálási tábla CSV-be

Exportálja a MySQL-táblázatot CSV formátumban

A MySQL OUTFILE azt is lehetővé teszi, hogy a táblázatot oszlopnév megadása nélkül exportáljuk. Az alábbi szintaxist használhatjuk a táblázat CSV-fájlformátumba történő exportálásához:

Rajinikanth
 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 '
'; 

Ha végrehajtjuk a fenti utasítást, akkor a parancssori eszközünk a következő eredményt adja. Ez azt jelenti, hogy a megadott tábla hat sort tartalmaz, amelyek exportálva lettek munkavállalói_mentés.csv fájlt.

MySQL-exportálási tábla CSV-be

Null értékek kezelése

Néha az eredményhalmaz mezőinek NULL értékei vannak, ekkor a célfájl (exportált fájltípus) N-t fog tartalmazni NULL helyett. Ezt a problémát a NULL érték helyére cseréljük 'nem alkalmazható (N/A)' használni a IFNULL funkció. Az alábbi nyilatkozat világosabban magyarázza ezt:

 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 '
'; 

Táblázat exportálása CSV formátumba a MySQL Workbench használatával

Ha nem akarunk hozzáférni az adatbázis-kiszolgálóhoz a CSV-fájl exportálásához, a MySQL egy másik módot kínál, azaz a MySQL Workbench használatával. A Workbench egy grafikus felhasználói felület, amely parancssori eszköz használata nélkül használható a MySQL adatbázissal. Lehetővé teszi, hogy egy utasítás eredménykészletét CSV formátumba exportáljuk a helyi rendszerünkben. Ehhez az alábbi lépéseket kell követnünk:

  • Futtassa az utasítást/lekérdezést, és kapja meg az eredménykészletet.
  • Ezután az eredmény panelen kattintson a gombra 'rekordkészlet exportálása külső fájlba' választási lehetőség. A rekordkészlet az eredményhalmazhoz használatos.
  • Végül egy új párbeszédpanel jelenik meg. Itt meg kell adnunk egy fájlnevet és annak formátumát. Az adatok kitöltése után kattintson a Megment gomb. A következő kép világosan magyarázza ezt:
MySQL-exportálási tábla CSV-be

Most ellenőrizhetjük az eredményt, ha a megadott útvonalra navigálunk.