SQL REPLACE() Kullanımı

images

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

idAdi_SoyadiSehirKayit_Donemi
1Salih ESKİOĞLUİstanbul1
2Ayhan ÇetinkayaKocaeli2
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_SoyadiSehir
Salih ESKİOĞLUİstanbul
Ayhan ÇetinkayaKocaeli
İ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_SoyadiKayit_Donemi
Salih ESKİOĞLUGü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ı:

idAdi_SoyadiSehirKayit_Donemi
1Salih ESKİOĞLUİstanbul1
2Ayhan ÇetinkayaKocaeli2
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

Yazı gezinmesi

Mobil sürümden çık