{"id":33023,"date":"2025-10-28T15:41:08","date_gmt":"2025-10-28T12:41:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33023"},"modified":"2025-10-28T15:41:08","modified_gmt":"2025-10-28T12:41:08","slug":"veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/","title":{"rendered":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi"},"content":{"rendered":"<p><body><\/p>\n<h2>Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi<\/h2>\n<h3>Giri\u015f: Veri G\u00fcncellemenin \u00d6nemi<\/h3>\n<p>Veritabanlar\u0131, modern uygulamalar\u0131n ve sistemlerin kalbidir. Bu sistemler, s\u00fcrekli de\u011fi\u015fen ve geli\u015fen bir d\u00fcnyada dinamik verilerle \u00e7al\u0131\u015f\u0131r. Veritaban\u0131ndaki verilerin ya\u015fam d\u00f6ng\u00fcs\u00fc genellikle d\u00f6rt ana i\u015flemle \u00f6zetlenir: Ekleme (Create), Okuma (Read), G\u00fcncelleme (Update) ve Silme (Delete) \u2013 k\u0131saca CRUD i\u015flemleri. Bu i\u015flemler aras\u0131nda, mevcut verilerin do\u011frulu\u011funu ve g\u00fcncelli\u011fini sa\u011flamak i\u00e7in &#8220;G\u00fcncelleme&#8221; i\u015flemi hayati bir rol oynar.<\/p>\n<p>Bir m\u00fc\u015fterinin adresinin de\u011fi\u015fmesi, bir \u00fcr\u00fcn\u00fcn fiyat\u0131n\u0131n g\u00fcncellenmesi, bir \u00e7al\u0131\u015fan\u0131n departman\u0131n\u0131n de\u011fi\u015ftirilmesi veya bir sipari\u015fin durumunun &#8220;beklemede&#8221; konumundan &#8220;g\u00f6nderildi&#8221; konumuna ge\u00e7mesi gibi senaryolar, veritaban\u0131nda g\u00fcncelleme yap\u0131lmas\u0131n\u0131 gerektirir. SQL&#8217;de bu g\u00fcncelleme i\u015flemleri, <code>UPDATE<\/code> ifadesi arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirilir. <code>UPDATE<\/code> ifadesi, veritaban\u0131 y\u00f6neticileri ve geli\u015ftiricileri i\u00e7in temel bir ara\u00e7t\u0131r; ancak yanl\u0131\u015f veya dikkatsiz kullan\u0131ld\u0131\u011f\u0131nda ciddi veri b\u00fct\u00fcnl\u00fc\u011f\u00fc sorunlar\u0131na yol a\u00e7abilir. Bu makalede, SQL <code>UPDATE<\/code> ifadesinin temel yap\u0131s\u0131ndan ba\u015flayarak, karma\u015f\u0131k kullan\u0131m senaryolar\u0131na, performans ipu\u00e7lar\u0131na ve en iyi uygulamalara kadar derinlemesine bir inceleme yapaca\u011f\u0131z.<\/p>\n<h3>SQL UPDATE \u0130fadesinin Temel Yap\u0131s\u0131<\/h3>\n<p>SQL <code>UPDATE<\/code> ifadesi, bir tablodaki mevcut kay\u0131tlar\u0131n bir veya daha fazla s\u00fctunundaki verileri de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. \u0130fadenin temel s\u00f6zdizimi olduk\u00e7a basittir, ancak esnekli\u011fi sayesinde \u00e7ok \u00e7e\u015fitli g\u00fcncelleme senaryolar\u0131na olanak tan\u0131r.<\/p>\n<p>Temel s\u00f6zdizimi \u015fu \u015fekildedir:<\/p>\n<pre><code class=\"language-sql\">UPDATE tablo_ad\u0131\nSET s\u00fctun1 = yeni_de\u011fer1, s\u00fctun2 = yeni_de\u011fer2, ...\nWHERE ko\u015ful;<\/code><\/pre>\n<p>Bu s\u00f6zdizimindeki anahtar bile\u015fenler \u015funlard\u0131r:<br \/>\n*   <code>UPDATE<\/code>: G\u00fcncelleme i\u015flemini ba\u015flat\u0131r ve hangi tablonun g\u00fcncellenece\u011fini belirtir.<br \/>\n*   <code>SET<\/code>: Hangi s\u00fctunlar\u0131n g\u00fcncellenece\u011fini ve bu s\u00fctunlara atanacak yeni de\u011ferleri tan\u0131mlar. Birden fazla s\u00fctun virg\u00fclle ayr\u0131larak belirtilebilir.<br \/>\n<em>   <code>WHERE<\/code>: G\u00fcncelleme i\u015fleminin hangi sat\u0131rlar \u00fczerinde uygulanaca\u011f\u0131n\u0131 belirleyen bir ko\u015ful belirtir. Bu yan t\u00fcmce, <code>UPDATE<\/code> ifadesinin en kritik par\u00e7as\u0131d\u0131r. <code>WHERE<\/code> yan t\u00fcmcesi olmadan bir <code>UPDATE<\/code> ifadesi \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda, tablodaki <\/em>t\u00fcm* sat\u0131rlar belirtilen de\u011ferlerle g\u00fcncellenir ki bu genellikle istenmeyen bir durumdur ve b\u00fcy\u00fck veri kayb\u0131na yol a\u00e7abilir.<\/p>\n<p><strong>\u00d6rnek Bir Tablo:<\/strong><br \/>\nA\u015fa\u011f\u0131daki <code>Calisanlar<\/code> tablosunu \u00f6rnek olarak kullanal\u0131m:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Calisanlar (\n    CalisanID INT PRIMARY KEY,\n    Ad NVARCHAR(50),\n    Soyad NVARCHAR(50),\n    Departman NVARCHAR(50),\n    Maas DECIMAL(10, 2),\n    GirisTarihi DATE\n);\n\nINSERT INTO Calisanlar (CalisanID, Ad, Soyad, Departman, Maas, GirisTarihi) VALUES\n(1, 'Ay\u015fe', 'Y\u0131lmaz', 'IT', 60000.00, '2020-01-15'),\n(2, 'Mehmet', 'Demir', '\u0130K', 55000.00, '2019-03-20'),\n(3, 'Zeynep', 'Kaya', 'IT', 62000.00, '2021-07-01'),\n(4, 'Ali', 'Can', 'Pazarlama', 58000.00, '2018-11-10'),\n(5, 'Elif', 'Aksoy', '\u0130K', 57000.00, '2022-05-25');<\/code><\/pre>\n<h3>UPDATE \u0130fadesi ile Tek Bir Sat\u0131r G\u00fcncelleme<\/h3>\n<p>Genellikle, birincil anahtar (Primary Key) gibi benzersiz bir tan\u0131mlay\u0131c\u0131 kullanarak belirli bir sat\u0131r\u0131 g\u00fcncellemek istersiniz. Bu, <code>WHERE<\/code> yan t\u00fcmcesini kullanarak ilgili sat\u0131r\u0131 hedeflemenizi sa\u011flar.<\/p>\n<p><strong>\u00d6rnek:<\/strong> <code>CalisanID<\/code>&#8216;si 1 olan \u00e7al\u0131\u015fan\u0131n maa\u015f\u0131n\u0131 g\u00fcncelleme.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Maas = 65000.00\nWHERE CalisanID = 1;<\/code><\/pre>\n<p>Bu sorgu, <code>CalisanID<\/code>&#8216;si 1 olan Ay\u015fe Y\u0131lmaz&#8217;\u0131n maa\u015f\u0131n\u0131 60000.00&#8217;dan 65000.00&#8217;a g\u00fcncelleyecektir.<\/p>\n<h3>UPDATE \u0130fadesi ile Birden Fazla Sat\u0131r G\u00fcncelleme<\/h3>\n<p><code>WHERE<\/code> yan t\u00fcmcesi, birden fazla sat\u0131r\u0131 etkileyen bir ko\u015ful i\u00e7erdi\u011finde, bu ko\u015fulu sa\u011flayan t\u00fcm sat\u0131rlar g\u00fcncellenir.<\/p>\n<p><strong>\u00d6rnek:<\/strong> &#8216;IT&#8217; departman\u0131ndaki t\u00fcm \u00e7al\u0131\u015fanlar\u0131n maa\u015flar\u0131na %10 zam yapma.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Maas = Maas * 1.10\nWHERE Departman = 'IT';<\/code><\/pre>\n<p>Bu sorgu, &#8216;IT&#8217; departman\u0131ndaki Ay\u015fe Y\u0131lmaz ve Zeynep Kaya&#8217;n\u0131n maa\u015flar\u0131n\u0131 %10 art\u0131racakt\u0131r. Dikkat edin, <code>SET<\/code> ifadesinde s\u00fctunun mevcut de\u011ferini kullanarak yeni bir de\u011fer hesaplayabiliyoruz (<code>Maas = Maas * 1.10<\/code>).<\/p>\n<h3>UPDATE \u0130fadesi ile Birden Fazla S\u00fctunu G\u00fcncelleme<\/h3>\n<p>Ayn\u0131 <code>UPDATE<\/code> ifadesi i\u00e7inde birden fazla s\u00fctunu g\u00fcncellemek m\u00fcmk\u00fcnd\u00fcr. Bunun i\u00e7in <code>SET<\/code> yan t\u00fcmcesinde g\u00fcncellenecek s\u00fctunlar\u0131 virg\u00fclle ay\u0131rarak belirtmeniz yeterlidir.<\/p>\n<p><strong>\u00d6rnek:<\/strong> <code>CalisanID<\/code>&#8216;si 2 olan \u00e7al\u0131\u015fan\u0131n hem departman\u0131n\u0131 hem de maa\u015f\u0131n\u0131 g\u00fcncelleme.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Departman = 'Finans',\n    Maas = 60000.00\nWHERE CalisanID = 2;<\/code><\/pre>\n<p>Bu sorgu, Mehmet Demir&#8217;in departman\u0131n\u0131 &#8216;\u0130K&#8217;dan &#8216;Finans&#8217;a, maa\u015f\u0131n\u0131 ise 55000.00&#8217;dan 60000.00&#8217;a g\u00fcncelleyecektir.<\/p>\n<h3>WHERE Yan T\u00fcmcesinin G\u00fcc\u00fc ve \u00d6nemi<\/h3>\n<p><code>WHERE<\/code> yan t\u00fcmcesi, <code>UPDATE<\/code> ifadesinin kontrol mekanizmas\u0131d\u0131r. Do\u011fru kullan\u0131lmad\u0131\u011f\u0131nda ciddi veri tutars\u0131zl\u0131klar\u0131na veya veri kayb\u0131na yol a\u00e7abilir. <code>WHERE<\/code> yan t\u00fcmcesinde \u00e7e\u015fitli operat\u00f6rler ve mant\u0131ksal ba\u011fla\u00e7lar kullan\u0131labilir:<\/p>\n<p>*   <strong>Kar\u015f\u0131la\u015ft\u0131rma Operat\u00f6rleri:<\/strong> <code>=<\/code>, <code>!=<\/code> (veya <code><><\/code>), <code>><\/code>, <code><<\/code>, <code>>=<\/code>, <code><=<\/code>.<\/p>\n<pre><code class=\"language-sql\">-- Maa\u015f\u0131 60000'dan az olanlar\u0131n departman\u0131n\u0131 'Genel' yap\n    UPDATE Calisanlar\n    SET Departman = 'Genel'\n    WHERE Maas < 60000.00;<\/code><\/pre>\n<p>*   <strong>Mant\u0131ksal Operat\u00f6rler:<\/strong> <code>AND<\/code>, <code>OR<\/code>, <code>NOT<\/code>.<\/p>\n<pre><code class=\"language-sql\">-- '\u0130K' departman\u0131nda olup maa\u015f\u0131 56000'dan az olanlar\u0131n maa\u015f\u0131n\u0131 58000 yap\n    UPDATE Calisanlar\n    SET Maas = 58000.00\n    WHERE Departman = '\u0130K' AND Maas < 56000.00;<\/code><\/pre>\n<p>*   <strong><code>LIKE<\/code> Operat\u00f6r\u00fc:<\/strong> Metin desen e\u015fle\u015ftirme i\u00e7in kullan\u0131l\u0131r (<code>%<\/code> herhangi bir karakter dizisini, <code>_<\/code> tek bir karakteri temsil eder).<\/p>\n<pre><code class=\"language-sql\">-- Ad\u0131 'A' ile ba\u015flayanlar\u0131n departman\u0131n\u0131 'Yeni Departman' yap\n    UPDATE Calisanlar\n    SET Departman = 'Yeni Departman'\n    WHERE Ad LIKE 'A%';<\/code><\/pre>\n<p>*   <strong><code>IN<\/code> Operat\u00f6r\u00fc:<\/strong> Belirtilen de\u011fer listesi i\u00e7inde olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/p>\n<pre><code class=\"language-sql\">-- Departman\u0131 'IT' veya 'Pazarlama' olanlar\u0131n maa\u015f\u0131n\u0131 %5 art\u0131r\n    UPDATE Calisanlar\n    SET Maas = Maas * 1.05\n    WHERE Departman IN ('IT', 'Pazarlama');<\/code><\/pre>\n<p>*   <strong><code>BETWEEN<\/code> Operat\u00f6r\u00fc:<\/strong> Belirtilen aral\u0131kta olup olmad\u0131\u011f\u0131n\u0131 kontrol eder (dahil).<\/p>\n<pre><code class=\"language-sql\">-- Giri\u015f tarihi 2019 ile 2021 aras\u0131nda olanlar\u0131n departman\u0131n\u0131 'K\u0131demli' yap\n    UPDATE Calisanlar\n    SET Departman = 'K\u0131demli'\n    WHERE GirisTarihi BETWEEN '2019-01-01' AND '2021-12-31';<\/code><\/pre>\n<p>*   <strong><code>IS NULL<\/code> \/ <code>IS NOT NULL<\/code>:<\/strong> S\u00fctunun <code>NULL<\/code> olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/p>\n<pre><code class=\"language-sql\">-- Departman\u0131 NULL olan \u00e7al\u0131\u015fanlar\u0131n departman\u0131n\u0131 'Atanmam\u0131\u015f' yap\n    UPDATE Calisanlar\n    SET Departman = 'Atanmam\u0131\u015f'\n    WHERE Departman IS NULL;<\/code><\/pre>\n<p><strong>UYARI:<\/strong> <code>WHERE<\/code> yan t\u00fcmcesi olmadan bir <code>UPDATE<\/code> ifadesi \u00e7al\u0131\u015ft\u0131rmak, tablodaki <em>t\u00fcm<\/em> kay\u0131tlar\u0131 g\u00fcncelleyecektir. Bu durum, \u00f6zellikle b\u00fcy\u00fck tablolar i\u00e7in felaketle sonu\u00e7lanabilir. Her zaman <code>UPDATE<\/code> sorgular\u0131n\u0131z\u0131 dikkatlice kontrol edin ve m\u00fcmk\u00fcnse \u00f6ncelikle bir <code>SELECT<\/code> ifadesi ile hangi kay\u0131tlar\u0131n etkilenece\u011fini do\u011frulay\u0131n.<\/p>\n<h3>JOIN Kullanarak Veri G\u00fcncelleme (Birden Fazla Tablodan Veri ile G\u00fcncelleme)<\/h3>\n<p>Bazen, bir tablodaki veriyi g\u00fcncellemek i\u00e7in ba\u015fka bir tablodaki verilere ihtiyac\u0131n\u0131z olabilir. Bu t\u00fcr senaryolarda <code>JOIN<\/code> ifadeleri kullan\u0131l\u0131r. <code>JOIN<\/code> ile g\u00fcncelleme s\u00f6zdizimi, kulland\u0131\u011f\u0131n\u0131z veritaban\u0131 sistemine g\u00f6re k\u00fc\u00e7\u00fck farkl\u0131l\u0131klar g\u00f6sterebilir.<\/p>\n<p><strong>\u00d6rnek Senaryo:<\/strong> <code>Calisanlar<\/code> tablosundaki departman bilgilerini, <code>Departmanlar<\/code> ad\u0131nda ba\u015fka bir tablodan gelen g\u00fcncel bilgilere g\u00f6re g\u00fcncellemek istiyoruz.<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Departmanlar (\n    DepartmanID INT PRIMARY KEY,\n    DepartmanAdi NVARCHAR(50),\n    YeniDepartmanAdi NVARCHAR(50)\n);\n\nINSERT INTO Departmanlar (DepartmanID, DepartmanAdi, YeniDepartmanAdi) VALUES\n(1, 'IT', 'Bilgi Teknolojileri'),\n(2, '\u0130K', '\u0130nsan Kaynaklar\u0131'),\n(3, 'Pazarlama', 'Dijital Pazarlama');<\/code><\/pre>\n<p>\u015eimdi <code>Calisanlar<\/code> tablosundaki <code>Departman<\/code> s\u00fctununu <code>Departmanlar<\/code> tablosundaki <code>YeniDepartmanAdi<\/code> s\u00fctununa g\u00f6re g\u00fcncelleyelim.<\/p>\n<p><strong>1. SQL Server \/ MS Access S\u00f6zdizimi:<\/strong><\/p>\n<pre><code class=\"language-sql\">UPDATE C\nSET C.Departman = D.YeniDepartmanAdi\nFROM Calisanlar AS C\nJOIN Departmanlar AS D ON C.Departman = D.DepartmanAdi;<\/code><\/pre>\n<p><strong>2. MySQL S\u00f6zdizimi:<\/strong><\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar AS C\nJOIN Departmanlar AS D ON C.Departman = D.DepartmanAdi\nSET C.Departman = D.YeniDepartmanAdi;<\/code><\/pre>\n<p><strong>3. PostgreSQL \/ Oracle S\u00f6zdizimi:<\/strong><\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Departman = D.YeniDepartmanAdi\nFROM Departmanlar AS D\nWHERE Calisanlar.Departman = D.DepartmanAdi;<\/code><\/pre>\n<p>Bu sorgular, <code>Calisanlar<\/code> tablosundaki <code>Departman<\/code> s\u00fctununu, e\u015fle\u015fen <code>Departmanlar<\/code> tablosundaki <code>YeniDepartmanAdi<\/code> ile g\u00fcncelleyecektir. \u00d6rne\u011fin, 'IT' olan departmanlar 'Bilgi Teknolojileri' olarak de\u011fi\u015fecektir.<\/p>\n<h3>Subquery (Alt Sorgu) Kullanarak Veri G\u00fcncelleme<\/h3>\n<p><code>UPDATE<\/code> ifadelerinde alt sorgular, <code>SET<\/code> yan t\u00fcmcesindeki bir de\u011feri belirlemek veya <code>WHERE<\/code> yan t\u00fcmcesindeki sat\u0131rlar\u0131 filtrelemek i\u00e7in kullan\u0131labilir.<\/p>\n<p><strong>1. <code>SET<\/code> Yan T\u00fcmcesinde Alt Sorgu Kullan\u0131m\u0131:<\/strong><br \/>\nBir s\u00fctunun de\u011ferini, ba\u015fka bir sorgunun sonucuna g\u00f6re ayarlamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p><strong>\u00d6rnek:<\/strong> Belirli bir departmandaki \u00e7al\u0131\u015fanlar\u0131n maa\u015f\u0131n\u0131, o departmandaki en y\u00fcksek maa\u015f\u0131n %90'\u0131na e\u015fitleme.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Maas = (SELECT MAX(Maas) * 0.90 FROM Calisanlar WHERE Departman = 'IT')\nWHERE Departman = 'IT';<\/code><\/pre>\n<p>Bu \u00f6rnekte, 'IT' departman\u0131ndaki her \u00e7al\u0131\u015fan\u0131n maa\u015f\u0131, 'IT' departman\u0131ndaki en y\u00fcksek maa\u015f\u0131n %90'\u0131 olarak ayarlanacakt\u0131r.<\/p>\n<p><strong>2. <code>WHERE<\/code> Yan T\u00fcmcesinde Alt Sorgu Kullan\u0131m\u0131:<\/strong><br \/>\nHangi sat\u0131rlar\u0131n g\u00fcncellenece\u011fini belirlemek i\u00e7in bir alt sorgu kullan\u0131labilir.<\/p>\n<p><strong>\u00d6rnek:<\/strong> <code>GirisTarihi<\/code> 2020'den \u00f6nce olan ve '\u0130K' departman\u0131nda \u00e7al\u0131\u015fanlar\u0131n maa\u015f\u0131n\u0131 %15 art\u0131rma.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Maas = Maas * 1.15\nWHERE CalisanID IN (\n    SELECT CalisanID\n    FROM Calisanlar\n    WHERE GirisTarihi < '2020-01-01' AND Departman = '\u0130K'\n);<\/code><\/pre>\n<p>Bu sorgu, \u00f6nce i\u00e7teki <code>SELECT<\/code> sorgusu ile ko\u015fulu sa\u011flayan <code>CalisanID<\/code>'leri bulur, ard\u0131ndan d\u0131\u015ftaki <code>UPDATE<\/code> bu ID'lere sahip \u00e7al\u0131\u015fanlar\u0131 g\u00fcnceller.<\/p>\n<h3>CASE \u0130fadesi ile Ko\u015fullu G\u00fcncelleme<\/h3>\n<p><code>CASE<\/code> ifadesi, <code>UPDATE<\/code> sorgular\u0131na g\u00fc\u00e7l\u00fc bir ko\u015fullu mant\u0131k katman\u0131 ekler. Ayn\u0131 <code>UPDATE<\/code> ifadesi i\u00e7inde farkl\u0131 ko\u015fullara g\u00f6re farkl\u0131 s\u00fctunlara farkl\u0131 de\u011ferler atamak i\u00e7in kullan\u0131labilir.<\/p>\n<p><strong>\u00d6rnek:<\/strong> \u00c7al\u0131\u015fan\u0131n departman\u0131na g\u00f6re maa\u015f\u0131n\u0131 farkl\u0131 oranlarda art\u0131rma. 'IT' departman\u0131ndakilere %10, '\u0130K' departman\u0131ndakilere %5 zam yap, di\u011ferlerine zam yapma.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Maas =\n    CASE Departman\n        WHEN 'IT' THEN Maas * 1.10\n        WHEN '\u0130K' THEN Maas * 1.05\n        ELSE Maas -- Di\u011fer departmanlara zam yap\u0131lmaz\n    END,\n    Departman =\n    CASE Departman\n        WHEN 'IT' THEN 'Bilgi Teknolojileri'\n        WHEN '\u0130K' THEN '\u0130nsan Kaynaklar\u0131'\n        ELSE Departman\n    END\nWHERE Departman IN ('IT', '\u0130K'); -- Sadece bu departmanlardaki \u00e7al\u0131\u015fanlar\u0131 etkile<\/code><\/pre>\n<p>Bu \u00f6rnek, hem <code>Maas<\/code> hem de <code>Departman<\/code> s\u00fctunlar\u0131n\u0131 <code>CASE<\/code> ifadesi kullanarak ko\u015fullu olarak g\u00fcnceller. <code>WHERE<\/code> yan t\u00fcmcesi, yaln\u0131zca ilgilenilen departmanlardaki \u00e7al\u0131\u015fanlar\u0131n i\u015fleme al\u0131nmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>NULL De\u011ferleri G\u00fcncelleme<\/h3>\n<p><code>NULL<\/code> de\u011ferler, bir s\u00fctunda veri olmad\u0131\u011f\u0131n\u0131 belirtir. <code>NULL<\/code> de\u011ferleri g\u00fcncellemek veya <code>NULL<\/code> olan sat\u0131rlar\u0131 hedeflemek i\u00e7in <code>IS NULL<\/code> ve <code>SET s\u00fctun = NULL<\/code> ifadeleri kullan\u0131l\u0131r.<\/p>\n<p><strong>\u00d6rnek:<\/strong> Departman\u0131 <code>NULL<\/code> olan \u00e7al\u0131\u015fanlar\u0131n departman\u0131n\u0131 'Atanmam\u0131\u015f' olarak g\u00fcncelleme.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Departman = 'Atanmam\u0131\u015f'\nWHERE Departman IS NULL;<\/code><\/pre>\n<p><strong>\u00d6rnek:<\/strong> Belirli bir \u00e7al\u0131\u015fan\u0131n departman\u0131n\u0131 <code>NULL<\/code> yapma.<\/p>\n<pre><code class=\"language-sql\">UPDATE Calisanlar\nSET Departman = NULL\nWHERE CalisanID = 5;<\/code><\/pre>\n<h3>Say\u0131sal ve Tarih Verilerini G\u00fcncelleme<\/h3>\n<p>Say\u0131sal ve tarih (DATE\/DATETIME) s\u00fctunlar\u0131 \u00fczerinde de \u00e7e\u015fitli i\u015flemlerle g\u00fcncelleme yap\u0131labilir.<\/p>\n<p><strong>Say\u0131sal Veriler:<\/strong><br \/>\nAritmetik operat\u00f6rler (<code>+<\/code>, <code>-<\/code>, <code>*<\/code>, <code>\/<\/code>) kullanarak mevcut de\u011ferler \u00fczerinde hesaplamalar yapabilirsiniz.<\/p>\n<pre><code class=\"language-sql\">-- T\u00fcm \u00e7al\u0131\u015fanlar\u0131n maa\u015flar\u0131na 500 birim ekle\nUPDATE Calisanlar\nSET Maas = Maas + 500;\n\n-- Maa\u015f\u0131 70000'den fazla olanlar\u0131n maa\u015f\u0131n\u0131 %5 d\u00fc\u015f\u00fcr\nUPDATE Calisanlar\nSET Maas = Maas * 0.95\nWHERE Maas > 70000.00;<\/code><\/pre>\n<p><strong>Tarih Verileri:<\/strong><br \/>\nVeritaban\u0131 sistemine \u00f6zg\u00fc tarih fonksiyonlar\u0131n\u0131 kullanarak tarihleri g\u00fcncelleyebilirsiniz.<\/p>\n<p>*   <strong>SQL Server:<\/strong><\/p>\n<pre><code class=\"language-sql\">-- CalisanID'si 1 olan \u00e7al\u0131\u015fan\u0131n giri\u015f tarihini bug\u00fcne g\u00fcncelle\n    UPDATE Calisanlar\n    SET GirisTarihi = GETDATE()\n    WHERE CalisanID = 1;\n\n    -- T\u00fcm \u00e7al\u0131\u015fanlar\u0131n giri\u015f tarihlerini 1 ay ileri al\n    UPDATE Calisanlar\n    SET GirisTarihi = DATEADD(month, 1, GirisTarihi);<\/code><\/pre>\n<p>*   <strong>MySQL:<\/strong><\/p>\n<pre><code class=\"language-sql\">-- CalisanID'si 1 olan \u00e7al\u0131\u015fan\u0131n giri\u015f tarihini bug\u00fcne g\u00fcncelle\n    UPDATE Calisanlar\n    SET GirisTarihi = CURDATE()\n    WHERE CalisanID = 1;\n\n    -- T\u00fcm \u00e7al\u0131\u015fanlar\u0131n giri\u015f tarihlerini 1 g\u00fcn ileri al\n    UPDATE Calisanlar\n    SET GirisTarihi = DATE_ADD(GirisTarihi, INTERVAL 1 DAY);<\/code><\/pre>\n<p>*   <strong>PostgreSQL:<\/strong><\/p>\n<pre><code class=\"language-sql\">-- CalisanID'si 1 olan \u00e7al\u0131\u015fan\u0131n giri\u015f tarihini bug\u00fcne g\u00fcncelle\n    UPDATE Calisanlar\n    SET GirisTarihi = CURRENT_DATE\n    WHERE CalisanID = 1;\n\n    -- T\u00fcm \u00e7al\u0131\u015fanlar\u0131n giri\u015f tarihlerini 1 y\u0131l ileri al\n    UPDATE Calisanlar\n    SET GirisTarihi = GirisTarihi + INTERVAL '1 year';<\/code><\/pre>\n<h3>String (Metin) Verilerini G\u00fcncelleme<\/h3>\n<p>Metin s\u00fctunlar\u0131n\u0131 g\u00fcncellerken, metin fonksiyonlar\u0131n\u0131 (birle\u015ftirme, de\u011fi\u015ftirme, alt dize alma vb.) kullanabilirsiniz.<\/p>\n<p>*   <strong><code>CONCAT<\/code> (veya <code>+<\/code> operat\u00f6r\u00fc):<\/strong> Metinleri birle\u015ftirme.<\/p>\n<pre><code class=\"language-sql\">-- Ad\u0131 'Ay\u015fe' olan \u00e7al\u0131\u015fan\u0131n soyad\u0131na ' (K\u0131demli)' ekle\n    UPDATE Calisanlar\n    SET Soyad = CONCAT(Soyad, ' (K\u0131demli)')\n    WHERE Ad = 'Ay\u015fe';\n    -- SQL Server'da: SET Soyad = Soyad + ' (K\u0131demli)'<\/code><\/pre>\n<p>*   <strong><code>REPLACE<\/code>:<\/strong> Bir metin i\u00e7indeki belirli bir alt diziyi ba\u015fka bir alt diziyle de\u011fi\u015ftirme.<\/p>\n<pre><code class=\"language-sql\">-- Departman ad\u0131ndaki 'IT' ifadesini 'Bilgi Teknolojileri' ile de\u011fi\u015ftir\n    UPDATE Calisanlar\n    SET Departman = REPLACE(Departman, 'IT', 'Bilgi Teknolojileri')\n    WHERE Departman LIKE '%IT%';<\/code><\/pre>\n<p>*   <strong><code>SUBSTRING<\/code> \/ <code>LEFT<\/code> \/ <code>RIGHT<\/code>:<\/strong> Metnin bir k\u0131sm\u0131n\u0131 alma.<\/p>\n<pre><code class=\"language-sql\">-- Departman ad\u0131n\u0131n ilk 3 karakterini 'XXX' ile de\u011fi\u015ftir\n    UPDATE Calisanlar\n    SET Departman = 'XXX' + SUBSTRING(Departman, 4, LEN(Departman) - 3)\n    WHERE LEN(Departman) > 3;<\/code><\/pre>\n<h3>Dikkat Edilmesi Gerekenler ve En \u0130yi Uygulamalar<\/h3>\n<p><code>UPDATE<\/code> ifadeleri g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r, bu nedenle dikkatli ve bilin\u00e7li kullan\u0131lmalar\u0131 gerekir.<\/p>\n<p>*   <strong>Veri Yedekleme:<\/strong> B\u00fcy\u00fck veya kritik g\u00fcncelleme i\u015flemleri yapmadan \u00f6nce her zaman ilgili tablonun veya t\u00fcm veritaban\u0131n\u0131n yede\u011fini al\u0131n. Bu, beklenmedik bir durumda geri d\u00f6nebilmenizi sa\u011flar.<br \/>\n*   <strong>Test Etme:<\/strong> \u00dcretim ortam\u0131nda bir <code>UPDATE<\/code> sorgusu \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce, sorguyu bir geli\u015ftirme veya test ortam\u0131nda, \u00fcretim verilerinin bir kopyas\u0131 \u00fczerinde test edin. <code>SELECT<\/code> ifadesi kullanarak <code>WHERE<\/code> ko\u015fulunun do\u011fru sat\u0131rlar\u0131 hedefledi\u011fini do\u011frulay\u0131n.<br \/>\n*   <strong><code>WHERE<\/code> Kullan\u0131m\u0131n\u0131n \u00d6nemi:<\/strong> Makalede defalarca vurguland\u0131\u011f\u0131 gibi, <code>WHERE<\/code> yan t\u00fcmcesini kullanmak zorunludur. <code>WHERE<\/code> olmadan bir <code>UPDATE<\/code> \u00e7al\u0131\u015ft\u0131rmak, tablodaki t\u00fcm sat\u0131rlar\u0131 g\u00fcncelleyerek geri d\u00f6n\u00fc\u015f\u00fc zor veya imkans\u0131z bir veri kayb\u0131na yol a\u00e7abilir.<br \/>\n*   <strong>\u0130\u015flem (Transaction) Kullan\u0131m\u0131:<\/strong> <code>UPDATE<\/code> gibi veri de\u011fi\u015ftirme i\u015flemlerini bir i\u015flem (transaction) i\u00e7inde \u00e7al\u0131\u015ft\u0131rmak en iyi uygulamad\u0131r. Bu, birden fazla sorguyu tek bir mant\u0131ksal birim olarak y\u00fcr\u00fctmenizi sa\u011flar. E\u011fer bir sorun olu\u015fursa, t\u00fcm i\u015flemi <code>ROLLBACK<\/code> (geri alma) ile iptal edebilir ve veritaban\u0131n\u0131 i\u015flemin ba\u015flang\u0131c\u0131ndaki durumuna d\u00f6nd\u00fcrebilirsiniz.<\/p>\n<pre><code class=\"language-sql\">BEGIN TRANSACTION; -- SQL Server, PostgreSQL, Oracle\n    -- START TRANSACTION; -- MySQL\n\n    UPDATE Calisanlar\n    SET Maas = Maas * 1.10\n    WHERE Departman = 'IT';\n\n    -- E\u011fer her \u015fey yolundaysa\n    COMMIT TRANSACTION; -- SQL Server, PostgreSQL, Oracle\n    -- COMMIT; -- MySQL\n\n    -- E\u011fer bir hata olu\u015fursa veya de\u011fi\u015fiklikleri iptal etmek isterseniz\n    -- ROLLBACK TRANSACTION; -- SQL Server, PostgreSQL, Oracle\n    -- ROLLBACK; -- MySQL<\/code><\/pre>\n<p>*   <strong>Kilitlenme (Locking):<\/strong> <code>UPDATE<\/code> i\u015flemleri, g\u00fcncellenen sat\u0131rlar \u00fczerinde kilitler olu\u015fturur. B\u00fcy\u00fck g\u00fcncellemeler veya uzun s\u00fcren i\u015flemler, di\u011fer kullan\u0131c\u0131lar\u0131n veya uygulamalar\u0131n bu sat\u0131rlara eri\u015fimini engelleyerek performans sorunlar\u0131na yol a\u00e7abilir. \u0130\u015flemleri k\u0131sa tutmaya ve <code>WHERE<\/code> ko\u015fullar\u0131n\u0131 optimize etmeye \u00e7al\u0131\u015f\u0131n.<br \/>\n*   <strong>Gereksiz G\u00fcncellemeden Ka\u00e7\u0131nma:<\/strong> Bir s\u00fctunun de\u011feri zaten istedi\u011finiz de\u011ferdeyse, o s\u00fctunu g\u00fcncellemek gereksizdir. Bu, hem performans\u0131 d\u00fc\u015f\u00fcrebilir hem de tetikleyicileri (triggers) gereksiz yere \u00e7al\u0131\u015ft\u0131rabilir.<\/p>\n<h3>G\u00fcncelleme \u0130\u015flemlerinde Performans Optimizasyonu<\/h3>\n<p>B\u00fcy\u00fck tablolarda veya s\u0131k yap\u0131lan g\u00fcncellemelerde performans kritik \u00f6neme sahiptir.<\/p>\n<p>*   <strong>\u0130ndeks Kullan\u0131m\u0131:<\/strong> <code>WHERE<\/code> yan t\u00fcmcesinde kullan\u0131lan s\u00fctunlarda uygun indekslerin bulunmas\u0131, <code>UPDATE<\/code> sorgular\u0131n\u0131n performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. \u0130ndeksler, veritaban\u0131n\u0131n g\u00fcncellenecek sat\u0131rlar\u0131 daha h\u0131zl\u0131 bulmas\u0131n\u0131 sa\u011flar. Ancak, \u00e7ok fazla indeksin olmas\u0131, <code>INSERT<\/code>, <code>UPDATE<\/code> ve <code>DELETE<\/code> i\u015flemlerinin kendisini yava\u015flatabilir \u00e7\u00fcnk\u00fc her indeksin de g\u00fcncellenmesi gerekir.<br \/>\n*   <strong>K\u00fc\u00e7\u00fck Partiler Halinde G\u00fcncelleme:<\/strong> Milyonlarca sat\u0131r\u0131 tek bir <code>UPDATE<\/code> ifadesiyle g\u00fcncellemek yerine, i\u015flemi k\u00fc\u00e7\u00fck partilere b\u00f6lmek (\u00f6rne\u011fin, 10000 sat\u0131rda bir <code>COMMIT<\/code> ile) kilitlenme s\u00fcrelerini azaltabilir ve i\u015flem g\u00fcnl\u00fc\u011f\u00fc (transaction log) boyutunu y\u00f6netilebilir tutabilir.<br \/>\n*   <strong>Etkilenen Sat\u0131r Say\u0131s\u0131n\u0131 S\u0131n\u0131rlama:<\/strong> Gereksiz sat\u0131rlar\u0131 g\u00fcncellemekten ka\u00e7\u0131n\u0131n. <code>WHERE<\/code> ko\u015fulunuzun m\u00fcmk\u00fcn oldu\u011funca spesifik oldu\u011fundan emin olun.<br \/>\n*   <strong>Tetikleyicileri (Triggers) De\u011ferlendirme:<\/strong> Tabloda <code>UPDATE<\/code> tetikleyicileri varsa, her g\u00fcncelleme bu tetikleyicileri \u00e7al\u0131\u015ft\u0131r\u0131r. Performans sorunlar\u0131na neden oluyorsa, tetikleyicilerin mant\u0131\u011f\u0131n\u0131 g\u00f6zden ge\u00e7irin veya ge\u00e7ici olarak devre d\u0131\u015f\u0131 b\u0131rakmay\u0131 d\u00fc\u015f\u00fcn\u00fcn (e\u011fer i\u015f mant\u0131\u011f\u0131 izin veriyorsa).<\/p>\n<h3>Veri B\u00fct\u00fcnl\u00fc\u011f\u00fc ve G\u00fcvenlik<\/h3>\n<p><code>UPDATE<\/code> i\u015flemleri veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve g\u00fcvenli\u011fini do\u011frudan etkiler.<\/p>\n<p>*   <strong>Foreign Key K\u0131s\u0131tlamalar\u0131:<\/strong> <code>FOREIGN KEY<\/code> k\u0131s\u0131tlamalar\u0131, ili\u015fkili tablolardaki verilerin tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flar. Birincil anahtar\u0131 g\u00fcncellerken, ili\u015fkili yabanc\u0131 anahtarlar\u0131n da g\u00fcncellenmesini sa\u011flamak i\u00e7in <code>ON UPDATE CASCADE<\/code> k\u0131s\u0131tlamas\u0131n\u0131 kullanabilirsiniz. Ancak bunu dikkatli kullanmal\u0131s\u0131n\u0131z, \u00e7\u00fcnk\u00fc birincil anahtardaki bir de\u011fi\u015fiklik bir\u00e7ok tabloda domino etkisi yaratabilir.<br \/>\n*   <strong>Kullan\u0131c\u0131 \u0130zinleri:<\/strong> Veritaban\u0131 kullan\u0131c\u0131lar\u0131na sadece ihtiya\u00e7 duyduklar\u0131 <code>UPDATE<\/code> izinlerini verin. \u00d6rne\u011fin, baz\u0131 kullan\u0131c\u0131lar\u0131n yaln\u0131zca belirli s\u00fctunlar\u0131 veya belirli <code>WHERE<\/code> ko\u015fullar\u0131na uyan sat\u0131rlar\u0131 g\u00fcncellemesine izin verebilirsiniz. <code>GRANT UPDATE ON Tablo (S\u00fctun)<\/code> veya <code>REVOKE UPDATE ON Tablo<\/code> gibi komutlarla izinleri y\u00f6netin.<br \/>\n*   <strong>Veri Do\u011frulama (Validation):<\/strong> Uygulama katman\u0131nda veya veritaban\u0131 seviyesinde (CHECK k\u0131s\u0131tlamalar\u0131, stored procedure'ler) veri do\u011frulamas\u0131 yaparak yanl\u0131\u015f veya ge\u00e7ersiz verilerin veritaban\u0131na girmesini veya g\u00fcncellenmesini engelleyin.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>SQL <code>UPDATE<\/code> ifadesi, veritaban\u0131 y\u00f6netiminin temel ta\u015flar\u0131ndan biridir. Verilerin s\u00fcrekli de\u011fi\u015fen do\u011fas\u0131 g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, bu ifadeyi do\u011fru, g\u00fcvenli ve verimli bir \u015fekilde kullanabilmek kritik bir beceridir. Temel s\u00f6zdiziminden ba\u015flayarak <code>JOIN<\/code>, alt sorgular ve <code>CASE<\/code> ifadeleri gibi daha geli\u015fmi\u015f tekniklere kadar geni\u015f bir kullan\u0131m yelpazesine sahiptir.<\/p>\n<p>Ancak <code>UPDATE<\/code> ifadesinin g\u00fcc\u00fc, beraberinde b\u00fcy\u00fck sorumluluklar da getirir. Her zaman <code>WHERE<\/code> yan t\u00fcmcesinin \u00f6nemini hat\u0131rlamak, i\u015flemleri yedeklemek ve test etmek, performans optimizasyonlar\u0131na dikkat etmek ve veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ile g\u00fcvenlik prensiplerine uymak, ba\u015far\u0131l\u0131 ve sorunsuz veri g\u00fcncelleme operasyonlar\u0131n\u0131n anahtar\u0131d\u0131r. Bu makaledeki bilgiler, SQL <code>UPDATE<\/code> ifadelerini kullan\u0131rken daha bilin\u00e7li ve etkili kararlar vermenize yard\u0131mc\u0131 olacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi\nGiri\u015f: Veri G\u00fcncellemenin \u00d6nemi\nVeritabanlar\u0131, modern uygulama","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1505],"tags":[],"class_list":{"0":"post-33023","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-sql-2","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi\" \/>\n<meta property=\"og:description\" content=\"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi Giri\u015f: Veri G\u00fcncellemenin \u00d6nemi Veritabanlar\u0131, modern uygulama\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-28T12:41:08+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi\",\"datePublished\":\"2025-10-28T12:41:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/\"},\"wordCount\":2097,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"SQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/\",\"name\":\"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-28T12:41:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/","og_locale":"tr_TR","og_type":"article","og_title":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi","og_description":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi Giri\u015f: Veri G\u00fcncellemenin \u00d6nemi Veritabanlar\u0131, modern uygulama","og_url":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-28T12:41:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi","datePublished":"2025-10-28T12:41:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/"},"wordCount":2097,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["SQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/","url":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/","name":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-28T12:41:08+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/veritabaninda-veri-guncelleme-sql-update-ifadesinin-derinlemesine-incelenmesi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Veritaban\u0131nda Veri G\u00fcncelleme: SQL UPDATE \u0130fadesinin Derinlemesine \u0130ncelenmesi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33023","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33023"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33023\/revisions"}],"predecessor-version":[{"id":33024,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33023\/revisions\/33024"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}