SQL REPLACE() Kullanımı
Replace kelimesinin Türkçe ’de "yerine koymak, yerini almak, yenisi ile değiştirmek" anlamlarına gelmektedir.
Yani tablomuzda bulunan
bir metinsel alandaki verinin bir parçasını veya tamamını ekrana farklı biçimde yazdırabiliriz.
Sadece ekrana yazdırma değil güncelleme sorgusu çalıştırarak alandaki verilerin bir kısmını değiştirebiliriz.
REPLACE() Kullanım Biçimi
REPLACE(alan_adi,degisecek_veri,yeni_veri) |
Aşağıdaki gibi Ogrenciler tablomuz olsun
id |
Adi_Soyadi |
Sehir |
Kayit_Donemi |
1 |
Salih ESKİOĞLU |
İstanbul |
1 |
2 |
Ayhan
Çetinkaya |
Kocaeli |
2 |
3 |
İlhan
Özlü |
Kahraman
Maraş |
2 |
Örnek1:
Select Adi_Soyadi, REPLACE(Sehir,'Kahraman ','K.')
From Ogranciler
Yukarıdaki örnekte, Sehir alanındaki Kahraman Maraş verisi ekrana alınırken K. Maraş şeklinde kısaltma olarak yazılır.
Bu işlem sadece ekran çıktısı yapar. Yani alandaki veri üzerinde değişiklik
yapmaz. Eğer yazacağınız uygulamada verileri ekrana alırken yer sıkıntınız varsa
Sehir alanını ekrana kısaltma olarak alırsanız uygulamanız ekrana sığabilir.
Çıktısı:
Adi_Soyadi |
Sehir |
Salih
ESKİOĞLU |
İstanbul |
Ayhan
Çetinkaya |
Kocaeli |
İlhan
Özlü |
K. Maraş |
Örnek2:
Select Adi_Soyadi, REPLACE(Kayit_Donemi,'1','Güz Dönemi')
From Personel
Where Kayit_Donemi='1'
Yukarıdaki örnekte, Kayit_Donemi alanında veriler 1 ve 2 olarak tutulduğu
varsayılıyor. Böylece veritabanımızın boyutunun büyümesi engelleniyor. Veriyi
ekrana taşırken Replace komutu kullanılarak ekrana istenilen bilgi
yazılmış olunur.
Çıktısı:
Adi_Soyadi |
Kayit_Donemi |
Salih
ESKİOĞLU |
Güz
Dönemi |
Örnek3:
Update Ogrenciler
Set Sehir=REPLACE(Sehir,'Kahraman','K.')
Yukarıdaki örnekte Sehir alanında bulunan Kahraman kelimesi K. olarak
değiştiriliyor. Normal şartlarda Update yapısı ile belirtilen alandaki bütün
değerler değiştirilirken REPLACE ile birlikte kullanıldığında alan içindeki
kelimeleri, harfleri veya sayıları değiştirebiliriz.
Çıktısı:
id |
Adi_Soyadi |
Sehir |
Kayit_Donemi |
1 |
Salih ESKİOĞLU |
İstanbul |
1 |
2 |
Ayhan
Çetinkaya |
Kocaeli |
2 |
3 |
İlhan
Özlü |
K.
Maraş |
2 |
Aşağıdaki gibi Urunler tablosunda seri numarlarının tutulduğu alanımız olsun.
Seri_No |
13-34373829 |
12-12323123 |
13-45532444 |
12-56345324 |
12-43353434 |
12-23444224 |
Örnek4:
Update Urunler
Set Vergi_No=REPLACE(Seri_No , '13-' , '12-')
Where Serii_No NOT Like '12-%'
Bu örnekte normal şartlarda Seri_No alanında 13- ile başlayan kayıtlar 12-
olarak değiştirilir. Ancak binlerce kaydın olduğu bir alanda sorgu yavaş
işleyeceği için Where ve Not Like kullanılarak 12- ile başlamayan kayıtlar
seçiliyor. Böylece kontrol edilecek olan kayıt sayısı ikiye düşmüş olur.
Çıktısı:
Seri_No |
12-34373829 |
12-12323123 |
12-45532444 |
12-56345324 |
12-43353434 |
12-23444224 |