Sql Server String Fonksiyonları

Duran BÜYÜKÖZTÜRK

string-fonksiyonları

String Veri Tipleri

String veri tipleri metinleri ifade eder. CHAR, NCHAR, VARCHAR, NVARCHAR, TEXT, NTEXT gibi çeşitleri vardır. Sorguların içerisinde ‘ tek tırnak ‘ içerisine yazılırlar. Hemen kısaca farklarına değinip sonra sql server içerisinde hazır olarak gelen ve bu verilerle çalışırken bize faydalı olacak fonksiyonlardan bahsedelim.

CHAR veri tipine sahip bir kolon oluştururken kolonun kaç karakter olacağını da belirtiriz. Örneğin char(11) dediğimizde maksimum 11 karakter alacak bir kolon oluşturmuş oluruz. Ancak şöyle bir durum var ki, her eklenen satır için char(11) kolonumuz boş bile bırakılsa diskimizde doluymuşçasına yer kaplar. Eğer satırlarımıza gelen veriler dolu gelecek ve gerçekten 11 karakterli bir değerle doldurulacaksa elbette kullanılabilir. Maksimum uzunluğu 8000 karakterdir.

NCHAR veri tipinin tek farkı uluslar arası karakter setlerini desteklemesidir. Mesela Turkish_CI_AS şeklinde bir collation ayarımız varsa başında Char bir alana ä gibi alfabemizde olmayan bir karakter ekleyemeyiz. Diskimizde char bir alanın kapladığı yerin iki katı kadar yer kaplar. Maksimum uzunluğu 4000 karakterdir.

VARCHAR veri tipi ise char ile benzerdir. Chardan tek farkı başında bulunan var ifadesi ile birlikte değişken gibi hareket eder ve içerisinde yer alan değer kadar diskte yer kaplar. Başındaki var ifadesi de zaten variable yani değişken demektedir.

NVARCHAR veri tipi uluslar arası karakter setini destekleyen varchar tipidir. Yine nchar ve char arasında olan gibi bir ilişki vardır ve diskte varcharın kapladığı alanın 2 katı kadar yer kaplar.

Çok fazla detayına girmeden text ve ntext arasındaki ilişkinin de aynı olduğunu. SQL’in yeni sürümlerinde text ve ntext veri tiplerinin kullanılmasının uygun görülmediğini, sadece uyumluluk sorunları ortaya çıkmaması için halen desteklendiğini ve ve maksimum 2gb olabildiğini söylemek yeterli olur.

SQL Replace Kullanımı

replace() fonksiyonu metin içerisindeki bir değeri başka bir değer ile değiştirmek için kullanılır. Mesela bir değişkenimizde ve bir kolonumuzda ‘Sql replace kullanımı’ şeklinde bir metin olduğunu varsayıyorum. Buradaki ‘Sql’ ibaresi yerine ‘T-SQL’ yazdırmak istediğimi düşünelim kodumun nasıl olurdu?

Yani kısaca fonksiyonumuz 3 parametre alır, bu parametreler virgül ile birbirinden ayrılır. İlk parametremiz değişikliğe uğrayacak metini, ikinci parametre değiştirilecek kısmı üçüncü parametre ise yeni değerimizi ifade eder. Yukarıdaki sorgu çalıştığında Ekrana T-Sql replace kullanımı yazacaktır. Farklı kullanım örneklerini görelim.

Sanırım replace için bu kadarı yeterli olur.

Sql Concat Kullanımı

Concat string ifadeleri birleştirir. Sınırsız sayıda parametre atanabilir ve bu parametreler virgül ile ayrılır.

Komutunun çıktısı SQL Concat Kullanımı şeklinde olur. Yine aynı şekilde değişkenler ile veya kolonlar ile kullanılabilir.

SQL Charindex Kullanımı

Bir metin içerisinde belirlediğimiz karakterleri aramak ve aradığımız değerin kaçıncı karakterde olduğunu bulmak için kullanılır. 2 veya 3 parametre alır. İnteger değer döner.

Sql Left – Right Kullanımı

Metin ifadesinin sağından veya solundan istediğimiz kadar veriyi alır gerisini almaz.

Sql LEN Kullanımı

Metinsel bir ifadenin karakter sayısını verir. Tek parametre alır ve integer tipinde bir değer döner.

Sql Lower ve Upper Kullanımı

Metinlerin tüm harflerini büyük veya küçük yapmak için kullanılır. Tek parametre alır ve yine string bir ifade döndürür.

Sql Ltrim – Rtrim Kullanımı

Metinsel ifadenin sağında ve solunda boşluklar varsa onları silerek gösterir. Tek parametre alır ve string bir ifade döndürür.

Sql STUFF Kullanımı

Çalışma mantığı replace ve substring fonksiyonlarına benzer. 4 parametre alır ve string bir ifade döndürür.

Sql Substring Kullanımı

Substring fonksiyonu metin içerisinde belirttiğim bir kısmı almamızı sağlar. 3 parametre alır ve string bir ifade döndürür.

Sql Reverse Kullanımı

Metinsel ifadeleri ters çeviren bir fonksiyondur.

Sql Patindex Kullanımı

Aslında temelde charindex ile aynı işi yapar ancak biraz daha yeteneklidir diyebiliriz. Charindexin yapamadığı ancak patindexin yapabildiği şey ise belirli bir desen arayabiliyor oluşumuzdur. Hemen örnekle anlatalım.

Yorum yapın