SELECT … INTO OUTFILE
Hər hansı cədvəldən, fayla məlumatı export etmək üçün istifadə SELECT … INTO OUTFILE-dan istifadə olunur. Bu zaman bəzi maraqlı hadisələr baş verir ki, onu qeyd etmək lazımdı. Məhz bu məqsədlə dəhşətli table-ımızı yaradaq 🙂
CREATE TABLE employee( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(10), salary INT, PRIMARY KEY(id) );
Və İnsert verək:
INSERT INTO employee(name,salary) VALUES('Shahriyar',1500); INSERT INTO employee(name,salary) VALUES('Orxan',2500); INSERT INTO employee(name,salary) VALUES('Axund', NULL);
İndi isə hər şeyi default olaraq saxlayaraq export verək:
SELECT * FROM employee INTO OUTFILE 'C:/Users/JRzayev/Desktop/out.txt';
Desktop-da out.txt adında bir fayl yaranacaq.Faylı açdıqda:
Əgər diqqət yetirsəniz məlumatların necə səliqəsiz şəkildə yerləşdiyini görərsiz. “Göy” rənglə işarələnən \N, NULL-u göstərir. Yəni NULL məlumatlar export faylında \N kimi göstərilir.
Export faylımızı gözəlləşdirək. “Sarı” rənglə işarələnən yerlərdə yeni sətrə keçilsəydi daha gözəl olardı.
SELECT * FROM employee INTO OUTFILE 'C:/Users/JRzayev/Desktop/out.txt' LINES TERMINATED BY '\r\n';
Əvvəlki koda əlavə olan “LINES TERMINATED BY ‘\r\n’” line-ending-in necə olacağını bildirir. İndiki halda biz qeydləri yeni sətrə keçirdərək daha aydın hala gətiririk.
Davam edək:
SELECT *FROM employee INTO OUTFILE 'C:/Users/JRzayev/Desktop/out.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
Əvvəlkinə əlavə olan “FIELDS TERMINATED BY ‘,’” field-lərin vergüllə aralı olacağını bildirir:
Davam edək:
SELECT *FROM employee INTO OUTFILE 'C:/Users/JRzayev/Desktop/out.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
Əvvəlkinə əlavə olan “ ENCLOSED BY ‘”‘ ” :
ENCLOSED BY-ın
OPTIONALLY ENCLOSED BY şəklində fərqli bir variantı var ki, izahı ingiliscə daha gözəldi:
The presence of OPTIONALLY causes output value quoting only for string columns, not for all columns.
SELECT * FROM employee INTO OUTFILE 'C:/Users/JRzayev/Desktop/out.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
Təşəkkürlər 🙂