logo

MySQL експортиране на таблица в CSV

MySQL има функция за експортиране на таблица в CSV файла. Файловият формат CSV е стойност, разделена със запетая, която използваме за обмен на данни между различни приложения като Microsoft Excel, Goole Docs и Open Office. Полезно е да имаме MySQL данни във файлов формат CSV, който ни позволява да ги анализираме и форматираме по желания от нас начин. Това е обикновен текстов файл, който ни помага да експортираме данни много лесно.

MySQL предоставя лесен начин за експортиране на всяка таблица в CSV файлове, които се намират в сървъра на базата данни. Трябва да гарантираме следните неща, преди да експортираме MySQL данни:

  • Процесът на MySQL сървъра има достъп за четене/запис до посочената (целева) папка, която съдържа CSV файла.
  • Посоченият CSV файл не трябва да съществува в системата.

За да експортираме таблицата в CSV файл, ще използваме ИЗБЕРЕТЕ В....OUTFILE изявление. Това твърдение е комплимент на ЗАРЕДИ ДАННИ команда, която се използва за запис на данни от таблица и след това да ги експортирате в определен файлов формат на хоста на сървъра. Целта е да се гарантира, че имаме файлова привилегия да използваме този синтаксис.

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

Можем също да използваме този синтаксис с оператор за стойности, за да експортираме данни директно във файл. Следното твърдение го обяснява по-ясно:

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

Ако искаме да изнасяме всички колони на таблицата , ще използваме синтаксиса по-долу. С този оператор подреждането и броят на редовете ще се контролира от ПОДРЕДЕНИ ПО и ОГРАНИЧЕНИЕ клауза.

извикване на js функция от html
 TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY '
';; 

От горното,

РЕДОВЕ ЗАВЪРШВАНИ С ',' : Използва се за обозначаване на редовете от редове във файл, които са завършени със запетая. Всеки ред съдържа данните за всяка колона във файла.

ПОЛЕТА, ОГРАЖДАНИ ОТ ''' : Използва се за указване на полето на файла, оградено с двойни кавички. Той предотвратява стойностите, които съдържат разделители със запетая. Ако стойностите, съдържащи се в двойни кавички, не разпознава запетая като разделител.

Местоположение за съхранение на експортирания файл

Мястото за съхранение на всеки експортиран файл в MySQL се съхранява в променливата по подразбиране защитен_файл_priv . Можем да изпълним командата по-долу, за да получим пътя по подразбиране на експортиран файл.

 mysql> SHOW VARIABLES LIKE 'secure_file_priv'; 

След изпълнението ще даде резултат, както следва, където можем да видим този път: C:/ProgramData/MySQL/MySQL Server 8.0/Качвания/ като местоположение на файла по подразбиране. Този път ще се използва по време на изпълнение на команда за експортиране.

MySQL експортиране на таблица в CSV

Ако искаме да променим местоположението за експортиране по подразбиране на CSV файла, посочен в защитен_файл_priv променлива, трябва да редактираме my.ini конфигурационен файл. В платформата Windows този файл се намира на следния път: C:ProgramDataMySQLMySQL Server X.Y .

Ако искаме да експортираме MySQL данни, първо трябва да създадем a база данни с поне един маса . Ще използваме тази таблица като пример.

нередно преминаване на двоично дърво

Можем да създадем a база данни и таблица чрез изпълнение на кода по-долу в редакторите, които използваме:

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

Ако изпълним ИЗБЕРЕТЕ ще видим следния резултат:

MySQL експортиране на таблица в CSV

Експортирайте MySQL данни в CSV формат с помощта на израза SELECT INTO ... OUTFILE

За да експортираме данните от таблицата в CSV файл, трябва да изпълним заявката, както следва:

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

Ще получим следния изход, където можем да видим, че шест реда са засегнати. Това е така, защото посочената таблица съдържа само шест реда.

филтриращ питон
MySQL експортиране на таблица в CSV

Ако изпълним същия оператор отново, MySQL извежда съобщение за грешка, което може да се види в изхода по-долу:

MySQL експортиране на таблица в CSV

Съобщението за грешка ни казва, че посоченото име на файл вече съществува на посоченото място. По този начин, ако експортираме новия CSV файл със същото име и местоположение, той не може да бъде създаден. Можем да разрешим това или да изтрием съществуващия файл на посоченото място, или да преименуваме името на файла, за да го създадем на същото място.

Можем да проверим дали CSV файлът е създаден на посоченото място или не, като преминем към даден път, както следва:

MySQL експортиране на таблица в CSV

Когато отворим този файл, той ще изглежда като изображението по-долу:

MySQL експортиране на таблица в CSV

На изображението можем да видим, че числовите полета са в кавички. Можем да променим този стил, като добавим Клауза по избор преди 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 '
'; 

Експортиране на данни със заглавие на колона

Понякога искаме да експортираме данни заедно със заглавия на колони, които правят файла удобен. Експортираният файл е по-разбираем, ако първият ред на CSV файла съдържа заглавията на колоните. Можем да добавим заглавията на колоните, като използваме СЪЮЗ ВСИЧКИ изявление, както следва:

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

В тази заявка можем да видим, че сме добавили заглавие за всяко име на колона. Можем да проверим изхода, като отидем до посочения URL адрес, където първият ред съдържа заглавието за всяка колона:

MySQL експортиране на таблица в CSV

Експортиране на MySQL таблица в CSV формат

MySQL OUTFILE също ни позволява да експортираме таблицата, без да посочваме име на колона. Можем да използваме синтаксиса по-долу, за да експортираме таблица във файлов формат CSV:

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

Ако изпълним горния оператор, нашият инструмент от командния ред произвежда следния резултат. Това означава, че посочената таблица съдържа шест реда, които се експортират в employee_backup.csv файл.

MySQL експортиране на таблица в CSV

Работа с нулеви стойности

Понякога полетата в набора с резултати имат NULL стойности, тогава целевият файл (експортиран файлов тип) ще съдържа N вместо NULL. Можем да коригираме този проблем, като заменим NULL стойността с „не е приложимо (N/A)“ използвайки IFNULL функция. Изявлението по-долу го обяснява по-ясно:

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

Експортирайте таблица в CSV формат с помощта на MySQL Workbench

Ако не искаме да имаме достъп до сървъра на базата данни за експортиране на CSV файла, MySQL предоставя друг начин, т.е. използване на MySQL Workbench. Workbench е GUI инструмент за работа с MySQL база данни без използване на инструмент от командния ред. Това ни позволява да експортираме резултатния набор от изявление в CSV формат в нашата локална система. За да направим това, трябва да изпълним следните стъпки:

  • Изпълнете оператора/заявката и получете набора от резултати.
  • След това щракнете върху панела с резултати 'експортиране на набор от записи във външен файл' опция. Наборът от записи се използва за набора от резултати.
  • Накрая ще се покаже нов диалогов прозорец. Тук трябва да предоставим име на файл и неговия формат. След като попълните детайла, щракнете върху Запазване бутон. Следното изображение го обяснява по-ясно:
MySQL експортиране на таблица в CSV

Сега можем да проверим резултата, като отидем до посочения път.

намери в низ c++