logo

MySQL eksportēšanas tabula uz CSV

MySQL ir iespēja eksportēt tabulu CSV failā. CSV faila formāts ir ar komatu atdalīta vērtība, ko izmantojam datu apmaiņai starp dažādām lietojumprogrammām, piemēram, Microsoft Excel , Goole Docs un Open Office. Ir noderīgi, ja MySQL dati ir CSV faila formātā, kas ļauj mums tos analizēt un formatēt vēlamajā veidā. Tas ir vienkārša teksta fails, kas palīdz mums ļoti viegli eksportēt datus.

MySQL nodrošina vienkāršu veidu, kā eksportēt jebkuru tabulu CSV failos, kas atrodas datu bāzes serverī. Pirms MySQL datu eksportēšanas mums ir jānodrošina šādas lietas:

  • MySQL servera procesam ir lasīšanas/rakstīšanas piekļuve norādītajai (mērķa) mapei, kurā ir CSV fails.
  • Norādītajam CSV failam sistēmā nevajadzētu eksistēt.

Lai eksportētu tabulu CSV failā, mēs izmantosim IZVĒLĒTIES INTO....OUTFILE paziņojums, apgalvojums. Šis paziņojums ir kompliments IELĀDĒT DATU komanda, ko izmanto, lai ierakstītu datus no tabulas un pēc tam eksportētu tos noteiktā faila formātā servera resursdatorā. Tas ir paredzēts, lai nodrošinātu, ka mums ir faila privilēģijas izmantot šo sintaksi.

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

Mēs varam arī izmantot šo sintaksi ar vērtību paziņojumu, lai eksportētu datus tieši failā. Šis paziņojums to izskaidro skaidrāk:

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

Ja gribam eksportēt visas tabulas kolonnas , mēs izmantosim tālāk norādīto sintaksi. Izmantojot šo paziņojumu, rindu secību un skaitu kontrolēs SAKĀRTOT PĒC un LIMIT klauzula.

jsp javatpoint
 TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
';; 

No iepriekš minētā

RINDAS, KAS BEIGTAS AR ',' : to izmanto, lai norādītu faila rindu rindas, kuras beidz ar komatu. Katra rinda satur katras kolonnas datus failā.

LAUKI, KAS NOBEIGTI ''' : to izmanto, lai norādītu faila lauku, kas ietverts pēdiņās. Tas novērš vērtības, kas satur komatu atdalītājus. Ja vērtības, kas ietvertas dubultpēdiņās, tas neatpazīst komatu kā atdalītāju.

Eksportētā faila glabāšanas vieta

Katra eksportētā faila uzglabāšanas vieta pakalpojumā MySQL tiek saglabāta noklusējuma mainīgajā Secure_file_priv . Mēs varam izpildīt tālāk norādīto komandu, lai iegūtu eksportētā faila noklusējuma ceļu.

 mysql> SHOW VARIABLES LIKE 'secure_file_priv'; 

Pēc izpildes tas sniegs šādu rezultātu, kur mēs varam redzēt šo ceļu: C:/ProgramData/MySQL/MySQL Server 8.0/Augšupielādes/ kā noklusējuma faila atrašanās vieta. Šis ceļš tiks izmantots eksportēšanas komandas izpildes laikā.

MySQL eksportēšanas tabula uz CSV

Ja vēlamies mainīt CSV faila noklusējuma eksportēšanas vietu, kas norādīts Secure_file_priv mainīgais, mums ir jārediģē my.ini konfigurācijas fails. Windows platformā šis fails atrodas šajā ceļā: C:ProgramDataMySQLMySQL Server X.Y .

Ja mēs vēlamies eksportēt MySQL datus, vispirms mums ir jāizveido a datu bāze ar vismaz vienu tabula . Mēs izmantosim šo tabulu kā piemēru.

Mēs varam izveidot a datu bāze un tabula izpildot tālāk norādīto kodu mūsu izmantotajos redaktoros:

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

Ja mēs izpildām ATLASĪT paziņojumu, mēs redzēsim šādu izvadi:

salīdzināma java
MySQL eksportēšanas tabula uz CSV

Eksportējiet MySQL datus CSV formātā, izmantojot priekšrakstu SELECT INTO ... OUTFILE

Lai eksportētu tabulas datus CSV failā, vaicājums ir jāizpilda šādi:

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

Mēs iegūsim šādu izvadi, kurā redzams, ka ir ietekmētas sešas rindas. Tas ir tāpēc, ka norādītajā tabulā ir tikai sešas rindas.

MySQL eksportēšanas tabula uz CSV

Ja mēs vēlreiz izpildām to pašu paziņojumu, MySQL rada kļūdas ziņojumu, ko var redzēt tālāk esošajā izvadā:

MySQL eksportēšanas tabula uz CSV

Kļūdas ziņojums norāda, ka norādītais faila nosaukums jau pastāv norādītajā vietā. Tādējādi, ja mēs eksportējam jauno CSV failu ar tādu pašu nosaukumu un atrašanās vietu, to nevarēs izveidot. Mēs varam atrisināt šo problēmu vai nu izdzēst esošo failu norādītajā vietā, vai pārdēvēt faila nosaukumu, lai to izveidotu tajā pašā vietā.

java apgriešanas virkne

Mēs varam pārbaudīt CSV failu, kas izveidots norādītajā vietā, vai ne, dodoties uz norādīto ceļu šādi:

MySQL eksportēšanas tabula uz CSV

Atverot šo failu, tas izskatīsies šādi:

MySQL eksportēšanas tabula uz CSV

Attēlā redzams, ka ciparu lauki ir pēdiņās. Mēs varam mainīt šo stilu, pievienojot IZVĒLES klauzula pirms PIEVIENOTA :

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

Datu eksportēšana ar kolonnas virsrakstu

Dažreiz mēs vēlamies eksportēt datus kopā ar kolonnu virsrakstiem, kas padara failu ērtu. Eksportētais fails ir saprotamāks, ja CSV faila pirmajā rindā ir kolonnu virsraksti. Mēs varam pievienot kolonnu virsrakstus, izmantojot SAVIENĪBA VISU paziņojumu šādi:

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

Šajā vaicājumā mēs redzam, ka esam pievienojuši virsrakstu katrai kolonnas nosaukumam. Mēs varam pārbaudīt izvadi, pārejot uz norādīto URL, kur pirmajā rindā ir katras kolonnas virsraksts:

MySQL eksportēšanas tabula uz CSV

Eksportējiet MySQL tabulu CSV formātā

MySQL OUTFILE arī ļauj eksportēt tabulu, nenorādot kolonnas nosaukumu. Mēs varam izmantot tālāk norādīto sintaksi, lai eksportētu tabulu CSV faila formātā:

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

Ja izpildām iepriekš minēto paziņojumu, mūsu komandrindas rīks rada šādu rezultātu. Tas nozīmē, ka norādītajā tabulā ir sešas rindas, kuras tika eksportētas darbinieks_dublējums.csv failu.

MySQL eksportēšanas tabula uz CSV

Null vērtību apstrāde

Dažreiz rezultātu kopas laukiem ir NULL vērtības, tad mērķa failā (eksportētā faila tips) būs N, nevis NULL. Mēs varam novērst šo problēmu, aizstājot NULL vērtību ar “nav piemērojams (N/A)” izmantojot IFNULL funkciju. Tālāk sniegtais paziņojums to izskaidro skaidrāk:

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

Eksportējiet tabulu CSV formātā, izmantojot MySQL Workbench

Ja mēs nevēlamies piekļūt datu bāzes serverim, lai eksportētu CSV failu, MySQL nodrošina citu veidu, t.i., izmantojot MySQL Workbench. Workbench ir GUI rīks darbam ar MySQL datu bāzi, neizmantojot komandrindas rīku. Tas ļauj mums eksportēt paziņojuma rezultātu kopu CSV formātā mūsu vietējā sistēmā. Lai to izdarītu, mums ir jāveic tālāk norādītās darbības.

pārdēvējiet Linux direktoriju
  • Palaidiet paziņojumu/vaicājumu un iegūstiet tā rezultātu kopu.
  • Pēc tam rezultātu panelī noklikšķiniet uz 'eksportēt ierakstu kopu uz ārēju failu' opciju. Ierakstu kopa tiek izmantota rezultātu kopai.
  • Visbeidzot, tiks parādīts jauns dialoglodziņš. Šeit mums ir jānorāda faila nosaukums un tā formāts. Pēc informācijas aizpildīšanas noklikšķiniet uz Saglabāt pogu. Tālāk redzamais attēls to izskaidro skaidrāk:
MySQL eksportēšanas tabula uz CSV

Tagad mēs varam pārbaudīt rezultātu, dodoties uz norādīto ceļu.