Kurs
Veritabanlarıyla çalışırken verimlilik esastır ve SQL'de aynı anda birden fazla sütunu güncellemeyi bilmek önemli bir beceridir. Bir veri analisti olarak SQL'de birden fazla sütunu nasıl güncelleyeceğinizi anlamak, üretkenliğinizi artırabilir ve hataları önleyebilir. Bu makale, en iyi uygulamaları göstermek için sözdizimi, teknikler ve örnekler eşliğinde SQL kullanarak birden fazla sütunun nasıl güncelleneceğini ele alacaktır.
Birden fazla sütunu UPDATE ifadesiyle nasıl güncelleyeceğinizi ve verileri etkili bir şekilde yönetmek için join'ler, koşullar ve performans hususlarını nasıl ele alacağınızı öğreneceksiniz. Başlarken, veritabanlarını sorgulamada SQL'in temellerini öğrenmek için DataCamp’in Introduction to SQL ve Learn SQL kurslarını takip etmenizi öneririm.
SQL'de Birden Fazla Sütunu Güncellemenin Temellerini Anlamak
SQL'deki UPDATE ifadesi, bir veritabanındaki verileri değiştirmek için kullanılır. Temel işlevi, bir tablodaki bir veya daha fazla sütundaki değerleri güncelleyerek mevcut kayıtları değiştirmektir. UPDATE, tek bir ifadeyle birden fazla sütunun güncellenmesine olanak tanıdığı için etkilidir. Aşağıda UPDATE ifadesinin sözdizimi yer almaktadır.
-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
column2 = value2,
column3 = value3
WHERE condition;
-
table_name: Verileri güncellemek istediğiniz tablo. -
column1,column2,column3: Güncellenen sütunlar. -
value1,value2,value3: İlgili sütunlar için yeni değerler. -
condition: Hangi satırların güncelleneceğini belirleyen ölçütler.
Birden fazla sütunu güncellemek için UPDATE ifadesini kullanmak etkilidir çünkü veritabanı motoru işlemi daha hızlı işler ve daha az kaynak tüketir. Yöntem ayrıca basittir çünkü kodu anlamak ve bakımını yapmak kolaydır.
SQL'de Birden Fazla Sütunun Güncellenmesine Örnekler
SQL'de tek bir kayıt için veya tablodaki birden fazla satır için birden fazla sütunu güncelleyebilirsiniz. Her ikisine de bakalım:
Tek satır güncelleme
Tek bir kayda ait birden fazla sütunun değerlerini değiştirdiğimizde tek satır güncelleme kullanırız. Belirli bir tablo girdisinin değerlerini değiştirirken bu yöntem oldukça basittir.
Aşağıdaki sorgu, employee_id = 101 olan tek bir satır için employees tablosundaki salary ve department sütunlarını günceller.
-- Updating salary and department columns
UPDATE employees
SET salary = 75000,
department = 'HR'
-- Condition to target the specific row
WHERE employee_id = 101;
Birden çok satır güncelleme
Toplu güncellemeler, birden çok kayıtta birden fazla sütunu güncellemeniz gereken durumlar için gereklidir. Birden çok satır güncellemeleri, birden fazla satırı etkileyen belirli koşullara göre kayıtlar güncellendiğinde gerçekleşir.
Diyelim ki Sales departmanında terfi eden birden fazla çalışanın salary ve position değerlerini güncellemek istiyorsunuz. Aşağıdaki sorguyu kullanabilirsiniz:
-- Update multiple columns
UPDATE employees
-- Increase the salary by $5000 for each
SET salary = salary + 5000,
position = 'Senior Sales Associate'
WHERE department = 'Sales'
AND years_of_experience > 5;SQL'de Birden Fazla Sütunu Güncellemek İçin Gelişmiş Teknikler
Bazı durumlarda, özellikle null değerleri ele alırken, koşullu mantık uygularken veya başka tablolardaki verilere göre güncelleme yaparken SQL'de birden fazla sütunu güncellemek daha gelişmiş teknikler gerektirir.
Bir sütunun değeri başka bir sütuna bağlı olduğunda
Aynı tablodaki başka bir sütuna dayanarak bir sütunu güncellemek isteyebiliriz. Burada sütunu güncellemek için ifadelerle temel mantık kullanacağız.
Örneğin, aşağıdaki sorgu belirli çalışanlar için bonus sütununu salary sütununun bir yüzdesi olarak hesaplar.
-- Update bonus as 10% of the salary
UPDATE employees
SET bonus = salary * 0.10
-- Only apply the update to Sales department
WHERE department = 'Sales';
NULL yönetimi için COALESCE kullanarak birden fazla sütunu güncelleme
COALESCE işlevi, birden fazla sütun güncellenirken null değerleri etkili biçimde yönetebilir. Bu, null değerlerin uygun varsayılanlarla değiştirilmesini sağlayarak veri bütünlüğünü korur.
Aşağıdaki sorgu salary ve department sütunlarını verilen değerle günceller. Sütun NULL içeriyorsa, varsayılan bir değerle değiştirilir.
UPDATE employees
-- If salary is NULL, set it to 50,000
SET salary = COALESCE(salary, 50000),
-- If department is NULL, set it to 'IT'
department = COALESCE(department, 'IT')
-- Apply update to specific employee IDs
WHERE employee_id IN (102, 103, 104);
CASE ifadeleriyle birden fazla sütun ve koşullu güncellemeler
CASE ifadesi, belirli kriterlere göre sütunları koşullu olarak güncellemek için kullanılabilir. Bu, hangi değerlerin hangi koşullarda güncelleneceği üzerinde daha ayrıntılı kontrol sağlar ve SQL güncellemelerine esneklik katar.
Örneğin, burada gösterdiğim gibi çalışanların performance_rating değerine göre bonus ve position değerlerini güncellemek isteyebilirsiniz:
-- Update bonus and position department
UPDATE employees
SET bonus = CASE
WHEN performance_rating = 'A' THEN salary * 0.15
WHEN performance_rating = 'B' THEN salary * 0.10
ELSE salary * 0.05
END,
position = CASE
WHEN performance_rating = 'A' THEN 'Team Lead'
WHEN performance_rating = 'B' THEN 'Senior'
ELSE position
END
-- Apply update only to employees in the Sales department
WHERE department = 'Sales';
Tabloları birleştirirken birden fazla sütunu güncelleme
İlişkili bir tablodan gelen verilere dayanarak birden fazla sütunu güncellemek için UPDATE ifadesi içinde JOIN de kullanabilirsiniz.
Diyelim ki employees ve departments adlı iki tablonuz var. employees tablosunu departments tablosundaki departman adları ve konumlarıyla güncellemek istiyorsunuz.
-- Update department name and location from departments table
UPDATE employees e
JOIN departments d ON e.department_id = d.department_id
SET e.department_name = d.department_name,
e.location = d.location
WHERE e.department_id IN (1, 2, 3);
Veritabanı tasarımı ve tabloları birleştirme hakkında daha fazla bilgi edinmek için SQL Fundamentals beceri yolumuzu ve Database Design kursumuzu denemenizi öneririm. Ayrıca çapraz tablo güncellemelerini öğrenmek için SQL UPDATE with JOIN: How it Works eğitimine göz atın.
Performans Optimizasyonu ve İşlem (Transaction) Yönetimi
Özellikle büyük veri kümeleri için, birden fazla sütunla ilgili SQL güncellemelerinde performans optimizasyonu önemlidir. Veri tutarlılığını ve veritabanı optimizasyonunu sağlamak için aşağıdaki en iyi uygulamaları dikkate alın.
- Verimlilik ve Atomiklik: Birden fazla sütunu tek bir sorguda güncellemek, veritabanı motorunun işlemesi gereken işlem sayısını azaltarak veritabanı performansını artırır. Bu, verimliliği ve aynı zamanda atomikliği iyileştirir; yani tüm güncellemeler birlikte başarılı olur ya da hiçbiri uygulanmaz ve veri tutarlılığı korunur.
- Güvenlik için İşlemleri Kullanma: İşlemler, bir sorun çıkarsa değişiklikleri geri alarak verileri korumanıza olanak tanır; böylece kısmi güncellemeler veritabanını riske atmaz. İşlemler ayrıca çok kullanıcılı ortamlarda toplu güncellemeleri daha güvenilir hale getirir ve veri çakışmaları riskini azaltır.
Yaygın Tuzaklar ve Hatalar
Birden çok sütunlu güncellemelerle uğraşırken hatalara yol açabilecek bazı yaygın tuzaklar ve hatalar vardır. Bazı örneklere ve bunlardan nasıl kaçınılacağına bakalım.
-
WHEREKlozunu Unutmak:UPDATEifadesindeWHEREklozunu eklemeyi unutmak, verilerdeki tüm satırların istenmeyen şekilde güncellenmesine neden olabilir. Bunu önlemek için,WHEREklozunun güncellemek istediğiniz sütunları işaret edecek şekilde doğru tanımlandığından her zaman emin olun. -
Veri Türü Uyumsuzlukları: Veri türleri arasındaki uyumsuzluklar hatalara yol açabilir veya yanlış veri depolanmasına neden olabilir.
UPDATEsorgunuzda kullanılan değerlerin veri türlerinin, güncelledikleri sütunlarla eşleştiğini her zaman doğrulayın.
Veri türleri ve WHERE kullanarak veri filtreleme hakkında daha fazla bilgi edinmek istiyorsanız, DataCamp’in Intermediate SQL kursunu öneririm.
Sonuç
SQL'de birden fazla sütunu nasıl güncelleyeceğinizi anlamak, veritabanı verimliliği ve doğruluğu için önemlidir. Bunu okuduktan sonra, aynı anda birden fazla sütunu güncellemenin gerekli bir beceri olduğunu ve kestirme yollara başvurmamanız gerektiğini; aksi halde kısmi işlemlere veya tutarsız durumlara yol açabileceğini umarım görmüşsünüzdür.
Kariyer yönünüze bağlı olarak, bir veri analisti olmak için gereken sektör düzeyindeki becerileri öğrenmek üzere DataCamp’in Associate Data Analyst in SQL kariyer yoluna kaydolmanızı veya veri mühendisi olmak istiyorsanız Associate Date Engineer in SQL kariyer yolumuzu denemenizi öneririm. Her iki durumda da, işverenlere SQL'i iş sorunlarını çözmek için kullanmadaki ustalığınızı göstermek için etkileyici bir yol olan SQL Associate Certification belgesini almayı da denemenizi öneririm.
SQL SSS
Tek bir sorguda SQL'de birden fazla sütunu güncelleyebilir miyim?
Evet, tek bir UPDATE ifadesinde aynı anda birden fazla sütunu güncelleyebilir, böylece verimliliği ve doğruluğu artırabilirsiniz.
Farklı satırlar için farklı değerlerle birden fazla sütunu güncelleyebilir miyim?
Evet, WHERE klozundaki koşulları kullanarak veya CASE ifadesi içinde mantık uygulayarak farklı satırlar için farklı değerlerle güncelleyebilirsiniz.
Birden fazla sütunu güncellerken WHERE klozunu unutursam ne olur?
Eğer WHERE klozunu atlıyorsanız, güncelleme tablodaki tüm satırlara uygulanır ve bu da istenmeyen veri değişikliklerine yol açabilir.
Birden fazla sütunu güncellerken NULL değerleri nasıl ele alırım?
Güncelleme yaparken varsayılan değerler sağlayarak NULL değerleri ele almak için COALESCE işlevini kullanabilirsiniz.
Başka bir tablodaki verileri kullanarak sütunları güncelleyebilir miyim?
Başka bir tablodan gelen ilişkili verilere dayanarak sütunları güncellemenize olanak tanıyan join'lerle güncellemeler gerçekleştirebilirsiniz.

