МиСКЛ има функцију за извоз табеле у ЦСВ датотеку. Формат ЦСВ датотеке је вредност раздвојена зарезима коју користимо за размену података између различитих апликација као што су Мицрософт Екцел, Гооле Доцс и Опен Оффице. Корисно је имати МиСКЛ податке у ЦСВ формату датотеке који нам омогућава да их анализирамо и форматирамо на начин на који желимо. То је датотека отвореног текста која нам помаже да врло лако извеземо податке.
МиСКЛ пружа једноставан начин за извоз било које табеле у ЦСВ датотеке које се налазе на серверу базе података. Морамо осигурати следеће ствари пре извоза МиСКЛ података:
- Процес МиСКЛ сервера има приступ за читање/писање наведеној (циљној) фасцикли, која садржи ЦСВ датотеку.
- Наведена ЦСВ датотека не би требало да постоји у систему.
Да бисмо извезли табелу у ЦСВ датотеку, користићемо СЕЛЕЦТ ИНТО....ОУТФИЛЕ изјава. Ова изјава је комплимент за ЛОАД ДАТА команду, која се користи за писање података из табеле, а затим их извоз у одређени формат датотеке на хост серверу. То је да осигурамо да имамо привилегију датотеке да користимо ову синтаксу.
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';
Ако желимо да извозимо све колоне табеле , користићемо доњу синтаксу. Са овом изјавом, редослед и број редова ће бити контролисани од стране ОРДЕР БИ и ЛИМИТ клаузула.
претраживач и примери
TABLE table_name ORDER BY lname LIMIT 1000 INTO OUTFILE '/path/filename.txt' FIELDS ENCLOSED BY ''' TERMINATED BY ';' ESCAPED BY ''' LINES TERMINATED BY ' ';;
Из наведеног,
РЕДОВИ ЗАВРШЕНИ СА ',' : Користи се за означавање редова у датотеци који се завршавају зарезом. Сваки ред садржи податке сваке колоне у датотеци.
ПОЉА ЗАКЉУЧЕНА СА ''' : Користи се за одређивање поља датотеке затвореног двоструким наводницима. Спречава вредности које садрже зарезе. Ако су вредности садржане у двоструким наводницима, не препознаје зарез као сепаратор.
Место складиштења извезене датотеке
Локација складиштења сваке извезене датотеке у МиСКЛ-у је ускладиштена у подразумеваној променљивој сецуре_филе_прив . Можемо извршити наредбу испод да бисмо добили подразумевану путању извезене датотеке.
mysql> SHOW VARIABLES LIKE 'secure_file_priv';
Након извршења, то ће дати резултат на следећи начин где можемо видети ову путању: Ц:/ПрограмДата/МиСКЛ/МиСКЛ Сервер 8.0/Уплоадс/ као подразумевану локацију датотеке. Ова путања ће се користити у време покретања команде за извоз.
Ако желимо да променимо подразумевану локацију за извоз ЦСВ датотеке наведене у сецуре_филе_прив променљиву, морамо да уредимо ми.ини конфигурациони фајл. На Виндовс платформи, ова датотека се налази на овој путањи: Ц:ПрограмДатаМиСКЛМиСКЛ Сервер Кс.И .
низ стрингова ц програмирање
Ако желимо да извеземо МиСКЛ податке, прво морамо да креирамо а база података са најмање једним сто . Користићемо ову табелу као пример.
Можемо створити а база података и табела извршавањем кода испод у уређивачима које користимо:
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');
Ако извршимо СЕЛЕЦТ изјаву, видећемо следећи излаз:
Извезите МиСКЛ податке у ЦСВ формату користећи израз СЕЛЕЦТ ИНТО ... ОУТФИЛЕ
Да бисмо извезли податке табеле у ЦСВ датотеку, потребно је да извршимо упит на следећи начин:
имг цсс алигн
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 ' ';
Добићемо следећи излаз, где можемо видети да је погођено шест редова. То је зато што наведена табела садржи само шест редова.
Ако поново извршимо исту наредбу, МиСКЛ производи поруку о грешци која се може видети у доњем излазу:
Порука о грешци нам говори да наведено име датотеке већ постоји на наведеној локацији. Дакле, ако извеземо нову ЦСВ датотеку са истим именом и локацијом, она не може бити креирана. Ово можемо да решимо или да избришемо постојећу датотеку на наведеној локацији или да преименујемо име датотеке да бисмо је креирали на истом месту.
Можемо да верификујемо ЦСВ датотеку креирану на наведеној локацији или не тако што ћемо се кретати до дате путање на следећи начин:
Када отворимо ову датотеку, она ће изгледати као на слици испод:
На слици можемо видети да су нумеричка поља под наводницима. Овај стил можемо променити додавањем ОПТИОНАЛИ клаузула испред ЕНЦЛОСЕД БИ :
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 ' ';
Извоз података са насловом колоне
Понекад желимо да извеземо податке заједно са насловима колона који чине датотеку згодном. Извезена датотека је разумљивија ако први ред ЦСВ датотеке садржи наслове колона. Можемо додати наслове колона користећи УНИОН АЛЛ изјава како следи:
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 ' ';
У овом упиту можемо видети да смо додали наслов за свако име колоне. Можемо да верификујемо излаз навигацијом до наведеног УРЛ-а где први ред садржи наслов сваке колоне:
Извезите МиСКЛ табелу у ЦСВ формату
МиСКЛ ОУТФИЛЕ нам такође омогућава да извеземо табелу без навођења имена колоне. Можемо користити доњу синтаксу за извоз табеле у формату ЦСВ датотеке:
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 ' ';
Ако извршимо горњу наредбу, наш алат командне линије даје следећи резултат. То значи да наведена табела садржи шест редова, који су извезени у емплоиее_бацкуп.цсв фајл.
упореди са Јавом
Руковање нултим вредностима
Понекад поља у скупу резултата имају НУЛЛ вредности, тада ће циљна датотека (извезени тип датотеке) садржати Н уместо НУЛЛ. Овај проблем можемо да решимо тако што ћемо НУЛЛ вредност заменити са 'није применљиво (Н/А)' помоћу ИФНУЛЛ функција. Доња изјава то јасније објашњава:
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 ' ';
Извезите табелу у ЦСВ формат користећи МиСКЛ Воркбенцх
Ако не желимо да приступимо серверу базе података за извоз ЦСВ датотеке, МиСКЛ обезбеђује други начин, тј. коришћење МиСКЛ Воркбенцх-а. Воркбенцх је ГУИ алат за рад са МиСКЛ базом података без употребе алата командне линије. Омогућава нам да извеземо скуп резултата исказа у ЦСВ формат у нашем локалном систему. Да бисмо то урадили, потребно је да следимо следеће кораке:
- Покрените наредбу/упит и преузмите њен скуп резултата.
- Затим у панелу резултата кликните 'извези скуп записа у екстерну датотеку' опција. Скуп записа се користи за скуп резултата.
- На крају ће се приказати нови оквир за дијалог. Овде треба да наведемо име датотеке и њен формат. Након попуњавања детаља, кликните на сачувати дугме. Следећа слика то јасније објашњава:
Сада можемо да проверимо резултат навигацијом до наведене путање.