İlişkisel veritabanlarıyla çalışırken sıklıkla dağınık verilerle uğraşmanız gerekir. En yaygın zorluklardan biri, metin verilerini temizlemek ve işlemektir. Neyse ki SQL, bu süreci çok daha verimli hale getirerek zamandan ve emekten tasarruf etmenizi sağlayan güçlü dize fonksiyonları sunar.
Bu yazıda, metin verilerini kolayca temizlemenize ve düzenlemenize yardımcı olacak en önemli SQL dize fonksiyonlarını inceleyeceğiz. Haydi başlayalım!
SQL Dize Fonksiyonları Nelerdir?
SQL Dize Fonksiyonları, bir veritabanında saklanan metin verilerini düzenlememizi ve işlememizi sağlayan yerleşik fonksiyonlardır. Metin alanlarına yaygın örnekler olarak isimler, açıklamalar ve adresler verilebilir.
Bu fonksiyonlar, aşağıdakiler de dahil olmak üzere geniş bir yelpazede görevler için kullanılabilir:
Dizeleri birleştirme
Metni biçimlendirme
Bir dizenin parçalarını çıkarma
Bir dize içinde belirli metni arayıp değiştirme
SQL'de Dizeleri Birleştirme
concat() fonksiyonunu kullanarak iki veya daha fazla dizeyi birleştirebiliriz:
Sözdiziminden de görebileceğiniz gibi, aynı ayırıcıyla ikiden fazla sütunu birleştirmek istediğiniz durumlarda daha kolay ve etkilidir.
Metni Biçimlendirme
Büyük/küçük harf dönüşümü, fazla boşlukların kaldırılması ve diğer işlemlerle metni ayarlamak için çeşitli SQL dize fonksiyonları vardır. Her bir fonksiyon, sözdizimi ve açıklamasıyla birlikte listelenmiştir.
Fonksiyon Sözdizimi
Açıklama
LOWER(string)
Metni tüm karakterleri küçük harfe çevrilmiş olarak döndürür
UPPER(string)
Metni tüm karakterleri büyük harfe çevrilmiş olarak döndürür
TRIM(string, [character])
Varsayılan olarak dizenin sol ve sağından boşlukları, belirtilirse özel karakteri kaldırır
LTRIM(string, [character])
Varsayılan olarak dizenin solundan boşlukları, belirtilirse özel karakteri kaldırır
RTRIM(string, [character])
Varsayılan olarak dizenin sağından boşlukları, belirtilirse özel karakteri kaldırır
Şimdi, bu fonksiyonların nasıl uygulanacağını anlamak için bazı örnekler gösterelim. Büyük harfler içeren e-posta adresleriniz ve küçük harfli ülke kısaltmalarınız olduğunu ve bu sütunların biçimini düzeltmek istediğinizi düşünün.
Büyük/küçük harf dönüşümüne ek olarak, dizelerin başındaki veya sonundaki boşluklardan kurtulmak da faydalı olabilir. Bu tür işlemler için temel fonksiyon, her iki taraftan da kaldırma yapanTRIM()dir. Diğer alternatifler ise sırasıyla sol ve sağ taraftan boşlukları silmek içinLTRIM() ve RTRIM()fonksiyonlarıdır:
SELECT TRIM(' Street Roma, 72 ')AS trimmed_address,
LTRIM(' Street Roma, 72 ')AS ltrimmed_address,
RTRIM(' Street Roma, 72 ')AS rtrimmed_addressAltyapı:
Sorgu aşağıdaki sonucu döndürür:
trimmed_address|ltrimmed_address|rtrimmed_address|---------------+----------------+----------------+
Street Roma,72|Street Roma,72| Street Roma,72|Altyapı:
Çıktıdan, her bir fonksiyon arasındaki farkları görebilirsiniz. Ayrıca, TRIM() beyaz boşlukların yanı sıra diğer özel karakterleri kaldırmak için de kullanılabilir. Örneğin, telefon alanını + işaretinden arındırmak istediğimizi düşünelim:
Gördüğünüz gibi, telefon numarası tamamen temizlendi.
Metin Çıkarma
Dizeleri birleştirip biçimlerini düzenledikten sonra, özel SQL fonksiyonu SUBSTRING() kullanarak metni nasıl çıkaracağımızı keşfetme zamanı. Bu fonksiyonu öğrenmek için farklı örnekler gösterelim:
first_character|first_3characters|first_5characters|---------------+-----------------+-----------------+
A |Ant |Anton |Altyapı:
Bu fonksiyonu önceki fonksiyonlarla da birleştirerek ilk karakteri büyük harfe dönüştürüp kalan harfleri küçük harfe çevirebilir ve ardından tüm harfleri birleştirebiliriz:
Buraya kadar gördüğümüz fonksiyonlara ek olarak, dizenin uzunluğunu çıkarmaya yarayan LENGTH() fonksiyonunu da görebilirsiniz. Bu bağlamda, son karakterin indeksini belirtmek için kullanışlıdır.
SQL'de Dizeleri Arama ve Değiştirme
Dizeleri aramak ve değiştirmek için en temel fonksiyonları gösterebiliriz:
Fonksiyon Sözdizimi
Açıklama
REPLACE(string,x,y)
Dizedeki x değerini y değeriyle değiştirir
CHARINDEX(x,string)
x değerinin dize içindeki konumunu bulur
Bir alt dizeyi, dizenin içinde başka bir alt dizeyle değiştirmek için çok kullanışlı bir fonksiyon REPLACE()'tir:
SELECT'Street Roma - 32'AS address,replace('Street Roma - 32','-',',')AS cleaned_addressAltyapı:
Çıktı şöyledir:
address |cleaned_address |----------------+----------------+
Street Roma -32|Street Roma ,32|Altyapı:
Bu örnekte, adresteki kısa çizgiyi virgülle değiştirdik. Ayrıca, kısa çizginin adresteki konumunu bulmayı da deneyebiliriz:
SELECT'Street Roma - 32'AS address,
LENGTH('Street Roma - 32')AS length_address,
CHARINDEX('-','Street Roma - 32')AS location_dashAltyapı:
Sorgu aşağıdaki sonucu döndürür:
address |length_address|location_dash|----------------+--------------+-------------+
Street Roma -32|16|13|Altyapı:
Görüyoruz ki - sembolü adresin 13. konumunda, yani dizenin çoğunlukla sonunda yer alıyor.
Sonuç
Bu SQL dize fonksiyonlarına hâkim olmak, verileri verimli şekilde temizlemede fark yaratabilir. Elbette bu yazı tüm fonksiyonları kapsamıyor; yalnızca en önemli fonksiyonların kısa bir listesini sunuyor. Tüm SQL fonksiyonları her zaman geçerli değildir ve kullandığınız veritabanı türüne göre değişebilir. Örneğin, MySQL veritabanında CHARINDEX yerine LOCATE() kullanılabilir.
Bu fonksiyonları pratik etmek için SQL'de Raporlama Kursumuza göz atabilirsiniz. Verileri temizleme ve karmaşık raporlar oluşturma konusunda uzmanlaşmanıza yardımcı olabilir. Ayrıca, SQL'in temel yönlerini kapsamak için SQL Temelleri beceri yolunu da öneririz.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
İlişkisel veritabanlarıyla çalışırken sıklıkla dağınık verilerle uğraşmanız gerekir. En yaygın zorluklardan biri, metin verilerini temizlemek ve işlemektir. Neyse ki SQL, bu süreci çok daha verimli hale getirerek zamandan ve emekten tasarruf etmenizi sağlayan güçlü dize fonksiyonları sunar.
Bu yazıda, metin verilerini kolayca temizlemenize ve düzenlemenize yardımcı olacak en önemli SQL dize fonksiyonlarını inceleyeceğiz. Haydi başlayalım!
SQL Dize Fonksiyonları Nelerdir?
SQL Dize Fonksiyonları, bir veritabanında saklanan metin verilerini düzenlememizi ve işlememizi sağlayan yerleşik fonksiyonlardır. Metin alanlarına yaygın örnekler olarak isimler, açıklamalar ve adresler verilebilir.
Bu fonksiyonlar, aşağıdakiler de dahil olmak üzere geniş bir yelpazede görevler için kullanılabilir:
SQL'de Dizeleri Birleştirme
concat()fonksiyonunu kullanarak iki veya daha fazla dizeyi birleştirebiliriz:Çıktı şöyledir:
Bu fonksiyon, isimler ve adresler gibi farklı sütunlardan gelen bilgileri birleştirmek için yaygın olarak kullanılır.
Alternatif olarak,
CONCAT_WS()fonksiyonunu da kullanabilirsiniz:Sözdiziminden de görebileceğiniz gibi, aynı ayırıcıyla ikiden fazla sütunu birleştirmek istediğiniz durumlarda daha kolay ve etkilidir.
Metni Biçimlendirme
Büyük/küçük harf dönüşümü, fazla boşlukların kaldırılması ve diğer işlemlerle metni ayarlamak için çeşitli SQL dize fonksiyonları vardır. Her bir fonksiyon, sözdizimi ve açıklamasıyla birlikte listelenmiştir.
Fonksiyon Sözdizimi
Açıklama
Metni tüm karakterleri küçük harfe çevrilmiş olarak döndürür
Metni tüm karakterleri büyük harfe çevrilmiş olarak döndürür
Varsayılan olarak dizenin sol ve sağından boşlukları, belirtilirse özel karakteri kaldırır
Varsayılan olarak dizenin solundan boşlukları, belirtilirse özel karakteri kaldırır
Varsayılan olarak dizenin sağından boşlukları, belirtilirse özel karakteri kaldırır
Şimdi, bu fonksiyonların nasıl uygulanacağını anlamak için bazı örnekler gösterelim. Büyük harfler içeren e-posta adresleriniz ve küçük harfli ülke kısaltmalarınız olduğunu ve bu sütunların biçimini düzeltmek istediğinizi düşünün.
Çıktı şu şekildedir:
Büyük/küçük harf dönüşümüne ek olarak, dizelerin başındaki veya sonundaki boşluklardan kurtulmak da faydalı olabilir. Bu tür işlemler için temel fonksiyon, her iki taraftan da kaldırma yapan
TRIM()dir. Diğer alternatifler ise sırasıyla sol ve sağ taraftan boşlukları silmek içinLTRIM()veRTRIM()fonksiyonlarıdır:Sorgu aşağıdaki sonucu döndürür:
Çıktıdan, her bir fonksiyon arasındaki farkları görebilirsiniz. Ayrıca,
TRIM()beyaz boşlukların yanı sıra diğer özel karakterleri kaldırmak için de kullanılabilir. Örneğin, telefon alanını + işaretinden arındırmak istediğimizi düşünelim:Dönen çıktı aşağıdaki gibidir:
Gördüğünüz gibi, telefon numarası tamamen temizlendi.
Metin Çıkarma
Dizeleri birleştirip biçimlerini düzenledikten sonra, özel SQL fonksiyonu SUBSTRING() kullanarak metni nasıl çıkaracağımızı keşfetme zamanı. Bu fonksiyonu öğrenmek için farklı örnekler gösterelim:
Çıktı şöyledir:
Bu fonksiyonu önceki fonksiyonlarla da birleştirerek ilk karakteri büyük harfe dönüştürüp kalan harfleri küçük harfe çevirebilir ve ardından tüm harfleri birleştirebiliriz:
Bu sorgu aşağıdaki sonucu döndürür:
Buraya kadar gördüğümüz fonksiyonlara ek olarak, dizenin uzunluğunu çıkarmaya yarayan
LENGTH()fonksiyonunu da görebilirsiniz. Bu bağlamda, son karakterin indeksini belirtmek için kullanışlıdır.SQL'de Dizeleri Arama ve Değiştirme
Dizeleri aramak ve değiştirmek için en temel fonksiyonları gösterebiliriz:
Fonksiyon Sözdizimi
Açıklama
Dizedeki x değerini y değeriyle değiştirir
x değerinin dize içindeki konumunu bulur
Bir alt dizeyi, dizenin içinde başka bir alt dizeyle değiştirmek için çok kullanışlı bir fonksiyon
REPLACE()'tir:Çıktı şöyledir:
Bu örnekte, adresteki kısa çizgiyi virgülle değiştirdik. Ayrıca, kısa çizginin adresteki konumunu bulmayı da deneyebiliriz:
Sorgu aşağıdaki sonucu döndürür:
Görüyoruz ki
-sembolü adresin 13. konumunda, yani dizenin çoğunlukla sonunda yer alıyor.Sonuç
Bu SQL dize fonksiyonlarına hâkim olmak, verileri verimli şekilde temizlemede fark yaratabilir. Elbette bu yazı tüm fonksiyonları kapsamıyor; yalnızca en önemli fonksiyonların kısa bir listesini sunuyor. Tüm SQL fonksiyonları her zaman geçerli değildir ve kullandığınız veritabanı türüne göre değişebilir. Örneğin, MySQL veritabanında
CHARINDEXyerineLOCATE()kullanılabilir.Bu fonksiyonları pratik etmek için SQL'de Raporlama Kursumuza göz atabilirsiniz. Verileri temizleme ve karmaşık raporlar oluşturma konusunda uzmanlaşmanıza yardımcı olabilir. Ayrıca, SQL'in temel yönlerini kapsamak için SQL Temelleri beceri yolunu da öneririz.