SQL REPLACE() Kullanımı
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 |