{"id":215,"title":"SQL Notlar\u0131: UPDATE ve DELETE \u0130\u015flemleri","content":"<p>## MySQL'de UPDATE ve DELETE \u0130\u015flemleri<\/p><p>MySQL'de `UPDATE` ve `DELETE` komutlar\u0131, veritaban\u0131ndaki mevcut verileri g\u00fcncellemek ve silmek i\u00e7in kullan\u0131l\u0131r. Bu b\u00f6l\u00fcmde, bu komutlar\u0131n farkl\u0131 kullan\u0131m senaryolar\u0131n\u0131 ve ipu\u00e7lar\u0131n\u0131 inceleyece\u011fiz.<\/p><p>### 1. **Temel UPDATE \u0130\u015flemi**<\/p><p>`UPDATE` komutu, belirli bir tablodaki sat\u0131rlar\u0131 g\u00fcncellemek i\u00e7in kullan\u0131l\u0131r. `WHERE` ko\u015fulu ile hangi sat\u0131rlar\u0131n g\u00fcncellenece\u011fi belirlenir.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>UPDATE customers&nbsp;<br>SET email = 'luke_smith@email.com'&nbsp;<br>WHERE id = 1;<br>```<\/p><p>Bu sorgu, `customers` tablosunda `id` de\u011feri 1 olan sat\u0131r\u0131n `email` s\u00fctununu g\u00fcnceller.<\/p><p>**T\u00fcm Sat\u0131rlar\u0131 G\u00fcncelleme:**<br>```sql<br>UPDATE customers&nbsp;<br>SET lastname = 'Smith';<br>```<\/p><p>Bu sorgu, `customers` tablosundaki t\u00fcm sat\u0131rlar\u0131n `lastname` s\u00fctununu `Smith` olarak g\u00fcnceller. Bu t\u00fcr sorgular dikkatli kullan\u0131lmal\u0131d\u0131r \u00e7\u00fcnk\u00fc t\u00fcm sat\u0131rlar\u0131 etkiler.<\/p><p>### 2. **JOIN ile UPDATE \u0130\u015flemi**<\/p><p>`UPDATE` komutu, `JOIN` kullan\u0131larak birden fazla tablodaki verileri g\u00fcncellemek i\u00e7in de kullan\u0131labilir. Bu, \u00f6zellikle ili\u015fkili tablolardaki verileri g\u00fcncellerken kullan\u0131\u015fl\u0131d\u0131r.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>UPDATE questions_mysql q<br>JOIN iwtQuestions i ON i.qId = q.qId<br>SET q.closeVotes = i.closeVotes,<br>&nbsp; &nbsp;q.votes = i.votes,<br>&nbsp; &nbsp;q.answers = i.answers,<br>&nbsp; &nbsp;q.views = i.views;<br>```<\/p><p>Bu sorgu, `questions_mysql` tablosundaki verileri `iwtQuestions` tablosundaki verilere g\u00f6re g\u00fcnceller. `qId` s\u00fctunu, iki tablo aras\u0131ndaki ili\u015fkiyi sa\u011flar.<\/p><p>### 3. **Bulk UPDATE (Toplu G\u00fcncelleme)**<\/p><p>Birden fazla sat\u0131r\u0131 farkl\u0131 de\u011ferlerle g\u00fcncellemek i\u00e7in `CASE` ifadesi kullan\u0131labilir. Bu, tek bir sorgu ile birden fazla sat\u0131r\u0131 g\u00fcncellemeyi sa\u011flar.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>UPDATE people<br>SET name =&nbsp;<br>&nbsp; &nbsp;CASE id<br>&nbsp; &nbsp; &nbsp; &nbsp;WHEN 1 THEN 'Karl'<br>&nbsp; &nbsp; &nbsp; &nbsp;WHEN 2 THEN 'Tom'<br>&nbsp; &nbsp; &nbsp; &nbsp;WHEN 3 THEN 'Mary'<br>&nbsp; &nbsp;END<br>WHERE id IN (1, 2, 3);<br>```<\/p><p>Bu sorgu, `people` tablosundaki `id` de\u011ferlerine g\u00f6re `name` s\u00fctununu g\u00fcnceller.<\/p><p>### 4. **ORDER BY ve LIMIT ile UPDATE**<\/p><p>`UPDATE` komutu, `ORDER BY` ve `LIMIT` ifadeleri ile birlikte kullan\u0131larak belirli bir s\u0131rayla ve s\u0131n\u0131rl\u0131 say\u0131da sat\u0131r\u0131 g\u00fcncellemeyi sa\u011flar.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>UPDATE employees&nbsp;<br>SET isConfirmed = 1&nbsp;<br>ORDER BY joiningDate&nbsp;<br>LIMIT 10;<br>```<\/p><p>Bu sorgu, `employees` tablosundaki en eski 10 \u00e7al\u0131\u015fan\u0131n `isConfirmed` s\u00fctununu g\u00fcnceller.<\/p><p>### 5. **Temel DELETE \u0130\u015flemi**<\/p><p>`DELETE` komutu, belirli bir tablodan sat\u0131r silmek i\u00e7in kullan\u0131l\u0131r. `WHERE` ko\u015fulu ile hangi sat\u0131rlar\u0131n silinece\u011fi belirlenir.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>DELETE FROM customers&nbsp;<br>WHERE id = 1;<br>```<\/p><p>Bu sorgu, `customers` tablosunda `id` de\u011feri 1 olan sat\u0131r\u0131 siler.<\/p><p>**T\u00fcm Sat\u0131rlar\u0131 Silme:**<br>```sql<br>DELETE FROM customers;<br>```<\/p><p>Bu sorgu, `customers` tablosundaki t\u00fcm sat\u0131rlar\u0131 siler. Bu t\u00fcr sorgular dikkatli kullan\u0131lmal\u0131d\u0131r \u00e7\u00fcnk\u00fc t\u00fcm verileri siler.<\/p><p>### 6. **JOIN ile DELETE \u0130\u015flemi**<\/p><p>`DELETE` komutu, `JOIN` kullan\u0131larak birden fazla tablodan sat\u0131r silmek i\u00e7in de kullan\u0131labilir. Bu, \u00f6zellikle ili\u015fkili tablolardaki verileri silerken kullan\u0131\u015fl\u0131d\u0131r.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>DELETE p1, p2<br>FROM people p1<br>JOIN pets p2 ON p2.ownerId = p1.id<br>WHERE p1.name = 'Paul';<br>```<\/p><p>Bu sorgu, `people` tablosundan `name` s\u00fctunu `Paul` olan sat\u0131r\u0131 ve `pets` tablosundan bu ki\u015fiye ait olan t\u00fcm evcil hayvan kay\u0131tlar\u0131n\u0131 siler.<\/p><p>### 7. **TRUNCATE ile T\u00fcm Verileri Silme**<\/p><p>`TRUNCATE` komutu, bir tablodaki t\u00fcm verileri siler ve `AUTO_INCREMENT` de\u011ferini s\u0131f\u0131rlar. Bu, b\u00fcy\u00fck veri setlerinde `DELETE` komutundan daha h\u0131zl\u0131d\u0131r.<\/p><p>**\u00d6rnek Kullan\u0131m:**<br>```sql<br>TRUNCATE TABLE customers;<br>```<\/p><p>Bu sorgu, `customers` tablosundaki t\u00fcm verileri siler ve `AUTO_INCREMENT` de\u011ferini s\u0131f\u0131rlar.<\/p><p>---<\/p><p>Bu bilgilerle, MySQL'de `UPDATE` ve `DELETE` komutlar\u0131n\u0131n farkl\u0131 kullan\u0131m senaryolar\u0131n\u0131 ve ipu\u00e7lar\u0131n\u0131 daha iyi anlayabilirsiniz.&nbsp;<\/p><p>---<\/p>","excerpt":"MySQL'de `UPDATE` ve `DELETE` komutlar\u0131n\u0131n farkl\u0131 kullan\u0131m senaryolar\u0131n\u0131 ve ipu\u00e7lar\u0131n\u0131 daha iyi anlayabilirsiniz.","created_at":"2025-01-13 14:47:35","updated_at":"2026-09-06 06:02:23","category_id":9,"view_count":550,"reading_time":4,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-01-13 14:47:35","featured_image":"resimyok.jpg","slug":"sql-notlari-update-ve-delete-islemleri","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim","category_color":"#ef4444"}