logo

MySQL Izvoz tablice u CSV

MySQL ima značajku izvoza tablice u CSV datoteku. CSV format datoteke je vrijednost odvojena zarezom koju koristimo za razmjenu podataka između različitih aplikacija kao što su Microsoft Excel, Goole Docs i Open Office. Korisno je imati MySQL podatke u CSV formatu datoteke koji nam omogućuje da ih analiziramo i formatiramo na način na koji želimo. To je obična tekstualna datoteka koja nam pomaže u vrlo jednostavnom izvozu podataka.

MySQL pruža jednostavan način za izvoz bilo koje tablice u CSV datoteke koje se nalaze na poslužitelju baze podataka. Moramo osigurati sljedeće stvari prije izvoza MySQL podataka:

  • Proces MySQL poslužitelja ima pristup čitanja/pisanja navedenoj (ciljnoj) mapi, koja sadrži CSV datoteku.
  • Navedena CSV datoteka ne bi trebala postojati u sustavu.

Za izvoz tablice u CSV datoteku koristit ćemo SELECT INTO...OUTFILE izjava. Ova izjava je kompliment od UČITAJ PODATKE naredba, koja se koristi za pisanje podataka iz tablice i zatim njihov izvoz u određeni format datoteke na host poslužitelju. To je da bismo osigurali da imamo privilegiju datoteke za korištenje ove sintakse.

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

Također možemo koristiti ovu sintaksu s iskazom vrijednosti za izvoz podataka izravno u datoteku. Sljedeća izjava to jasnije objašnjava:

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

Ako želimo izvoziti sve stupce tablice , koristit ćemo donju sintaksu. Uz ovu izjavu, redoslijed i broj redaka kontrolirat će NARUČI PO i OGRANIČITI klauzula.

onemogući razvojni način rada
 TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
';; 

Iz gore navedenog,

REDOVI KOJI SE ZAVRŠAVAJU SA ',' : Koristi se za označavanje redaka redaka u datoteci koji se završavaju operatorom zarezom. Svaki redak sadrži podatke svakog stupca u datoteci.

POLJA OKRUŽENA S ''' : Koristi se za određivanje polja datoteke unutar dvostrukih navodnika. Sprječava vrijednosti koje sadrže razdjelnike zareze. Ako su vrijednosti sadržane u dvostrukim navodnicima, ne prepoznaje zarez kao razdjelnik.

Mjesto pohrane izvezene datoteke

Mjesto pohrane svake izvezene datoteke u MySQL pohranjeno je u zadanoj varijabli sigurna_datoteka_priv . Možemo izvršiti naredbu u nastavku da dobijemo zadanu putanju izvezene datoteke.

 mysql> SHOW VARIABLES LIKE 'secure_file_priv'; 

Nakon izvršenja, dat će rezultat kako slijedi gdje možemo vidjeti ovu putanju: C:/ProgramData/MySQL/MySQL Server 8.0/Učitavanja/ kao zadano mjesto datoteke. Ovaj će se put koristiti u trenutku pokretanja naredbe izvoza.

MySQL Izvoz tablice u CSV

Ako želimo promijeniti zadanu lokaciju izvoza CSV datoteke navedene u sigurna_datoteka_priv varijablu, moramo urediti moj.ini konfiguracijska datoteka. Na Windows platformi ova se datoteka nalazi na ovoj stazi: C:ProgramDataMySQLMySQL Server X.Y .

Ako želimo izvesti MySQL podatke, prvo moramo stvoriti baza podataka s barem jednom stol . Koristit ćemo ovu tablicu kao primjer.

rekurzija java

Možemo stvoriti a baza podataka i tablica izvršavanjem donjeg koda u uređivačima koje koristimo:

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

Ako izvršimo IZABERI iskaz, vidjet ćemo sljedeći izlaz:

MySQL Izvoz tablice u CSV

Izvezite MySQL podatke u CSV format pomoću izjave SELECT INTO ... OUTFILE

Da bismo izvezli podatke tablice u CSV datoteku, moramo izvršiti upit na sljedeći način:

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

Dobit ćemo sljedeći izlaz, gdje možemo vidjeti da je pogođeno šest redaka. To je zato što navedena tablica sadrži samo šest redaka.

c++ set
MySQL Izvoz tablice u CSV

Ako ponovno izvršimo istu naredbu, MySQL proizvodi poruku o pogrešci koja se može vidjeti u donjem izlazu:

MySQL Izvoz tablice u CSV

Poruka o pogrešci govori nam da navedeni naziv datoteke već postoji na navedenom mjestu. Stoga, ako izvezemo novu CSV datoteku s istim nazivom i lokacijom, ona se ne može stvoriti. To možemo riješiti ili izbrisati postojeću datoteku na navedenoj lokaciji ili preimenovati naziv datoteke kako bismo je stvorili na istom mjestu.

Možemo provjeriti je li CSV datoteka stvorena na navedenoj lokaciji ili ne tako da odemo do zadane staze na sljedeći način:

MySQL Izvoz tablice u CSV

Kada otvorimo ovu datoteku, izgledat će kao na slici ispod:

MySQL Izvoz tablice u CSV

Na slici možemo vidjeti da su numerička polja pod navodnicima. Ovaj stil možemo promijeniti dodavanjem OPCIONALNA klauzula ispred 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 '
'; 

Izvoz podataka s naslovom stupca

Ponekad želimo izvesti podatke zajedno s naslovima stupaca koji datoteku čine praktičnom. Izvezena datoteka je razumljivija ako prvi redak CSV datoteke sadrži naslove stupaca. Naslove stupaca možemo dodati pomoću UNIJA SVE izjava kako slijedi:

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

U ovom upitu možemo vidjeti da smo dodali naslov za svaki naziv stupca. Izlaz možemo provjeriti odlaskom na navedeni URL gdje prvi redak sadrži naslov za svaki stupac:

MySQL Izvoz tablice u CSV

Izvoz MySQL tablice u CSV formatu

MySQL OUTFILE nam također omogućuje izvoz tablice bez navođenja naziva stupca. Možemo koristiti donju sintaksu za izvoz tablice u CSV format datoteke:

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

Ako izvršimo gornju naredbu, naš alat naredbenog retka daje sljedeći rezultat. To znači da navedena tablica sadrži šest redaka koji su izvezeni u zaposlenik_backup.csv datoteka.

MySQL Izvoz tablice u CSV

Rukovanje nultim vrijednostima

Ponekad polja u skupu rezultata imaju NULL vrijednosti, tada će ciljna datoteka (izvezena vrsta datoteke) sadržavati N umjesto NULL. Ovaj problem možemo riješiti zamjenom NULL vrijednosti s 'nije primjenjivo (N/A)' koristiti IFNULL funkcija. Donja izjava to jasnije objašnjava:

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

Izvezite tablicu u CSV format koristeći MySQL Workbench

Ako ne želimo pristupiti poslužitelju baze podataka za eksport CSV datoteke, MySQL nudi drugi način, tj. koristeći MySQL Workbench. Workbench je GUI alat za rad s MySQL bazom podataka bez upotrebe alata naredbenog retka. Omogućuje nam izvoz skupa rezultata izjave u CSV format u našem lokalnom sustavu. Da bismo to učinili, moramo slijediti korake u nastavku:

  • Pokrenite naredbu/upit i dobijte skup rezultata.
  • Zatim kliknite na ploči s rezultatima 'izvezi skup zapisa u vanjsku datoteku' opcija. Skup zapisa koristi se za skup rezultata.
  • Na kraju će se prikazati novi dijaloški okvir. Ovdje moramo dati naziv datoteke i njen format. Nakon popunjavanja detalja kliknite na Uštedjeti dugme. Sljedeća slika to jasnije objašnjava:
MySQL Izvoz tablice u CSV

Sada možemo provjeriti rezultat navigacijom do navedene staze.

bfs i dfs