Əsas səhifə > MySQL > LOAD DATA INFILE

LOAD DATA INFILE

Fayldan məlumatı import etmək üçün LOAD DATA INFILE-dan istifadə olunur. Bəzi maraqlı xüsusiyyətlər var ki, onlar haqda danışmaq istərəm.
Deyək ki, out.txt faylı var və onun içində məlumatlar aşağıdakı şəkildə düzülmüşdür.

1,Shahriyar,1500
2,Orxan,2500
3,Axund,\N
4,Musfiq,\N

bu məlumatı “table1” cədvəlinə import etmək lazımdır.

CREATE TABLE table1(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(10),
salary INT,
PRIMARY KEY(id)
);

Məhz bu məqsədlə:

LOAD DATA INFILE 'C:/Users/JRzayev/Desktop/out.txt'
INTO TABLE table1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';


FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\r\n’;—nə olduğunu bilmək üçün mənim əvvəlki yazıma təəccüblü nəzərlərlə bax!😛 Əvvəlki Yazı
Və həmin cədvələ baxsaq, görərik ki həqiqətən də məlumatlar daxil edilmişdir.

Bəs əgər faylın əvvəlində bir neçə sətrdə əlavə dəxlisiz məlumatlar yerləşibsə onda necə?🙂 Yəni Faylın içindəki məlumatlar aşağıdakı şəkildədir:

–Comment1
–Comment2
1,Shahriyar,1500
2,Orxan,2500
3,Axund,\N
4,Musfiq,\N

Və bu faylı düzgün şəkildə import edə bilmək üçün:

LOAD DATA INFILE 'C:/Users/JRzayev/Desktop/out.txt'
INTO TABLE table1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 2 LINES;


IGNORE 2 LINES—yuxarıdan ilk 2 sətri buraxmağı əmr edir.
Bəs deyək ki, bizə fayldan yalnız bəzi məlumatlar lazımdır hamısı yox.
Bunu göstərmək üçün table1-də dəyişiklik aparaq:

ALTER TABLE table1 DROP PRIMARY KEY;
ALTER TABLE table1 MODIFY id INT;

Cədvəlimizin son vəziyyəti:

mysql> desc table1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(10) | YES  |     | NULL    |       |
| salary | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

Faylımız isə bu şəkildədir:

1,Shahriyar,1500
2,Orxan,2500
3,Axund,\N
4,Musfiq,\N

Bizə burdan lazımdır ki,yalnız name və salary üçün məlumatlar seçilsin. Yəni 1,2,3,4(İD) ignore edilsin.

LOAD DATA INFILE 'C:/Users/JRzayev/Desktop/out.txt'
INTO TABLE table1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n' (@id,name,salary);

Burda elə də dəhşətli bir şey yoxdur.Məsələ burasındadır ki, @id—user variable-ı heç yerdə istifadə olunmadığına görə sadəcə ignore edilir və cədvələ onun yerinə “default value” daxil edilir. İndiki halda bu “default value” bizdə NULL-dur. Və cədvəlimizə nəzər yetirsək bunu aydın görərik:

Daha ətraflı Documentasiyadan oxuya bilərsiz: LOAD DATA INFILE Syntax
Təşəkkürlər🙂

Kateqoriyalar: MySQL Etiketlər: ,
  1. Hələlik heç bir şərh yoxdur
  1. No trackbacks yet.

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma

%d bloqqer bunu bəyənir: