{"id":195,"title":"SQL Notlar\u0131: `LOAD DATA INFILE` ve `UNION`","content":"<p>MySQL, b\u00fcy\u00fck veri k\u00fcmelerini veritaban\u0131na aktarmak ve birden fazla sorgunun sonu\u00e7lar\u0131n\u0131 birle\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. Bu yaz\u0131da, **LOAD DATA INFILE** ve **UNION** operat\u00f6r\u00fcn\u00fcn temel kullan\u0131m\u0131n\u0131 ve bu ara\u00e7larla ger\u00e7ekle\u015ftirilebilecek i\u015flemleri ele alaca\u011f\u0131z.<\/p><p>---<\/p><p>### `LOAD DATA INFILE` ile Veri \u0130\u00e7e Aktarma<\/p><p>`LOAD DATA INFILE`, b\u00fcy\u00fck miktarda veriyi h\u0131zl\u0131 bir \u015fekilde MySQL tablolar\u0131na aktarmak i\u00e7in kullan\u0131lan bir komuttur. Bu komut, \u00f6zellikle CSV veya metin dosyalar\u0131ndaki verileri veritaban\u0131na aktarmak i\u00e7in olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r.<\/p><p>#### Temel Kullan\u0131m<br>\u00d6rnek bir CSV dosyas\u0131 (`employee.csv`) a\u015fa\u011f\u0131daki gibi olsun:<\/p><p>```<br>1;max;male;manager;12-7-1985<br>2;jack;male;executive;21-8-1990<br>1000000;marta;female;accountant;15-6-1992<br>```<\/p><p>Bu dosyay\u0131 bir MySQL tablosuna aktarmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p><p>```sql<br>LOAD DATA INFILE '\/path\/to\/employee.csv'<br>INTO TABLE employee<br>FIELDS TERMINATED BY ';'<br>LINES TERMINATED BY '\\r\\n'<br>(id, name, sex, designation, dob);<br>```<\/p><p>Bu komut, `employee.csv` dosyas\u0131ndaki verileri `employee` tablosuna aktar\u0131r.<\/p><p>#### Tarih Format\u0131n\u0131 D\u00f6n\u00fc\u015ft\u00fcrme<br>E\u011fer tarih format\u0131 standart de\u011filse (\u00f6rne\u011fin `17-Jan-1985`), `STR_TO_DATE` fonksiyonunu kullanarak tarih format\u0131n\u0131 d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz:<\/p><p>```sql<br>LOAD DATA INFILE '\/path\/to\/employee.csv'<br>INTO TABLE employee<br>FIELDS TERMINATED BY ';'<br>LINES TERMINATED BY '\\r\\n'<br>(id, name, sex, designation, @dob)<br>SET dob = STR_TO_DATE(@dob, '%d-%b-%Y');<br>```<\/p><p>#### Yinelenen Kay\u0131tlar\u0131 Y\u00f6netme<br>Yinelenen kay\u0131tlar\u0131 y\u00f6netmek i\u00e7in `REPLACE` veya `IGNORE` se\u00e7eneklerini kullanabilirsiniz:<\/p><p>- `REPLACE`: Yinelenen kay\u0131tlar\u0131 yeni verilerle de\u011fi\u015ftirir.<br>- `IGNORE`: Yinelenen kay\u0131tlar\u0131 g\u00f6rmezden gelir.<\/p><p>```sql<br>LOAD DATA INFILE '\/path\/to\/employee.csv'<br>REPLACE INTO TABLE employee<br>FIELDS TERMINATED BY ';'<br>LINES TERMINATED BY '\\r\\n'<br>(id, name, sex, designation, dob);<br>```<\/p><p>---<\/p><p>### `UNION` ile Sorgu Sonu\u00e7lar\u0131n\u0131 Birle\u015ftirme<\/p><p>`UNION` operat\u00f6r\u00fc, iki veya daha fazla `SELECT` sorgusunun sonu\u00e7lar\u0131n\u0131 birle\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Bu operat\u00f6r, varsay\u0131lan olarak yinelenen kay\u0131tlar\u0131 \u00e7\u0131kar\u0131r.<\/p><p>#### Temel Kullan\u0131m<br>\u00d6rnek olarak, `Customers` ve `Suppliers` tablolar\u0131ndaki farkl\u0131 \u015fehirleri birle\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki sorguyu kullanabilirsiniz:<\/p><p>```sql<br>SELECT City FROM Customers<br>UNION<br>SELECT City FROM Suppliers<br>ORDER BY City;<br>```<\/p><p>Bu sorgu, her iki tablodaki benzersiz \u015fehirleri birle\u015ftirir ve s\u0131ralar.<\/p><p>#### `UNION ALL` ile T\u00fcm Kay\u0131tlar\u0131 Birle\u015ftirme<br>E\u011fer yinelenen kay\u0131tlar\u0131 da dahil etmek istiyorsan\u0131z, `UNION ALL` kullanabilirsiniz:<\/p><p>```sql<br>SELECT City FROM Customers<br>UNION ALL<br>SELECT City FROM Suppliers<br>ORDER BY City;<br>```<\/p><p>Bu sorgu, her iki tablodaki t\u00fcm \u015fehirleri (yinelenenler dahil) birle\u015ftirir ve s\u0131ralar.<\/p><p>#### `WHERE` ile Ko\u015fullu Birle\u015ftirme<br>Belirli bir ko\u015fula g\u00f6re verileri birle\u015ftirmek i\u00e7in `WHERE` ifadesini kullanabilirsiniz. \u00d6rne\u011fin, sadece Almanya'daki \u015fehirleri birle\u015ftirmek i\u00e7in:<\/p><p>```sql<br>SELECT City, Country FROM Customers<br>WHERE Country='Germany'<br>UNION ALL<br>SELECT City, Country FROM Suppliers<br>WHERE Country='Germany'<br>ORDER BY City;<br>```<\/p><p>Bu sorgu, `Customers` ve `Suppliers` tablolar\u0131ndaki Almanya'daki \u015fehirleri birle\u015ftirir.<\/p><p>---<\/p><p>### Sonu\u00e7<\/p><p>`LOAD DATA INFILE` ve `UNION` operat\u00f6r\u00fc, MySQL'de veri y\u00f6netimi ve sorgulama i\u015flemlerini kolayla\u015ft\u0131ran g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. `LOAD DATA INFILE`, b\u00fcy\u00fck veri k\u00fcmelerini veritaban\u0131na h\u0131zl\u0131 bir \u015fekilde aktarmak i\u00e7in idealdir. `UNION` operat\u00f6r\u00fc ise birden fazla sorgunun sonu\u00e7lar\u0131n\u0131 birle\u015ftirerek daha kapsaml\u0131 raporlar olu\u015fturman\u0131za olanak tan\u0131r. Bu ara\u00e7lar\u0131 do\u011fru bir \u015fekilde kullanarak, veritaban\u0131 y\u00f6netimini daha verimli hale getirebilirsiniz.<\/p>","excerpt":"`LOAD DATA INFILE` ve `UNION` operat\u00f6r\u00fc, MySQL'de veri y\u00f6netimi ve sorgulama i\u015flemlerini kolayla\u015ft\u0131ran g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. `LOAD DATA INFILE`, b\u00fcy\u00fck veri k\u00fcmelerini veritaban\u0131na h\u0131zl\u0131 bir \u015fekilde aktarmak i\u00e7in idealdir. `UNION` operat\u00f6r\u00fc ise birden fazla sorgunun sonu\u00e7lar\u0131n\u0131 birle\u015ftirerek daha kapsaml\u0131 raporlar olu\u015fturman\u0131za olanak tan\u0131r. Bu ara\u00e7lar\u0131 do\u011fru bir \u015fekilde kullanarak, veritaban\u0131 y\u00f6netimini daha verimli hale getirebilirsiniz.","created_at":"2025-01-13 15:52:20","updated_at":"2026-09-23 16:30:33","category_id":9,"view_count":578,"reading_time":3,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-01-13 15:52:20","featured_image":"resimyok.jpg","slug":"sql-notlari-load-data-infile-ve-union","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim"}