SEO (Arama Motoru Optimizasyonu) Mikro İnteraktif ÜCRETSİZ - Google Play'den İndirin

SQL'de REPLACE Fonksiyonu

SQL'de Replace fonksiyonunu örneklerle detaylandırmaya çalışalım. SQL Server, Oracle, PostgreSQL ve MySQL örnekleri mevcuttur. Belirli kurallara göre silme işlemi için de Regular Expression (Düzenli İfade) kullanımını işleyeceğiz.

Replace fonksiyonu bir çok dilde "c#, java, javascript vb.." değiştirme işlemi için kullanılmaktadır. SQL karşılığının kullanımı ise şu şekildedir:
Replace Fonksiyonu Kullanım Örneği
REPLACE(ifade, değişecekifade, yeniifade)

Örnek 1: "Merhaba Serkan" cümlesindeki "Serkan" kelimesini "Ahmed" ile değiştirelim.
Örnek 1 (SQL Server)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed')

Örnek 1 (Oracle)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed') Deger FROM DUAL

Örnek 1 (PostgreSQL)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed') Deger

Örnek 1 (MySQL)
SELECT REPLACE('Merhaba Serkan', 'Serkan', 'Ahmed') Deger

Örnek 1 (Sonuç)
SQL'de REPLACE Fonksiyonu

Örnek 2: "12344521290" ifadesindeki "2" rakamlarını "6" ile değiştirelim.
Örnek 2 (SQL Server)
SELECT REPLACE('12344521290', '2', '6')

Örnek 2 (Oracle)
SELECT REPLACE('12344521290', '2', '6') Deger FROM DUAL

Örnek 2 (PostgreSQL)
SELECT REPLACE('12344521290', '2', '6') Deger

Örnek 2 (MySQL)
SELECT REPLACE('12344521290', '2', '6') Deger

Örnek 2 (Sonuç)
SQL'de REPLACE Fonksiyonu

Örnek 3: "(0532) 123 45 67" ifadesindeki "(" ve ")" ifadelerini silelim.
Örnek 3 (SQL Server)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '')

Örnek 3 (Oracle)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '') Deger FROM DUAL

Örnek 3 (PostgreSQL)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '') Deger

Örnek 3 (MySQL)
SELECT REPLACE(REPLACE('(0532) 123 45 67', '(', ''), ')', '') Deger

Örnek 3 (Sonuç)
SQL'de REPLACE Fonksiyonu

Alfabetik Karakterler Harici Olanları Silelim

Bu noktada aklımıza ilk gelen şey Regular Expression (Düzenli İfadeler) gelmektedir. Kısaca SQL tarafında nasıl kullanılacağına dair örneklerle ilerleyelim.
Sadece Alfabetik Karakterler (SQL Server)
DECLARE @deger VARCHAR(100) = 'Bu Site 12 Yaşında';
DECLARE @desen VARCHAR(100) = '%[^a-zA-Z]%';
WHILE PATINDEX(@desen, @deger) > 0
BEGIN
   SELECT @deger = STUFF(@deger, PATINDEX(@desen, @deger), 1, ''); 
END
SELECT 'Bu Site 12 Yaşında' AS 'Eski İfade', @deger AS 'Yeni İfade'

Sadece Alfabetik Karakterler (Oracle)
SELECT REGEXP_REPLACE('Bu Site 12 Yaşında', '[^a-zA-Z]', '') FROM DUAL;

Sadece Alfabetik Karakterler (PostgreSQL)
SELECT REGEXP_REPLACE('Bu Site 12 Yaşında', '[^a-zA-Z]', '', 'g')

Sadece Alfabetik Karakterler (MySQL)
SELECT REGEXP_REPLACE('Bu Site 12 Yaşında', '[^a-zA-Z]', '')

Bir tane değişken tanımladık. İçerisinde sayısal bir veri olacak şekilde. Daha sonra elimizde regex desenine uygun olacak şekilde sayısal verileri temizledik. Sonrasında ekrana eski ve yeni değerleri karşılaştırmalı bir şekilde yazdırmış olduk.
Sadece Alfabetik Karakterler (Sonuç)
SQL'de REPLACE Fonksiyonu

Sayısal Veri Harici Olanları Silelim

Bir ifade içerisinde sadece sayısal (rakam) verilerini elde etmek için gereken deseni oluşturalım.
Sadece Sayısal Karakterler (SQL Server)
DECLARE @deger VARCHAR(100) = 'SQL Dersleri 172835 defa izlenmiş';
DECLARE @desen VARCHAR(100) = '%[^0-9]%';
WHILE PATINDEX(@desen, @deger) > 0
BEGIN
   SELECT @deger = STUFF(@deger, PATINDEX(@desen, @deger), 1, ''); 
END
SELECT 'SQL Dersleri 172835 defa izlenmiş' AS 'Eski İfade', @deger AS 'Yeni İfade'

Sadece Sayısal Karakterler (Oracle)
SELECT REGEXP_REPLACE('SQL Dersleri 172835 defa izlenmiş', '[^0-9]', '') FROM DUAL;

Sadece Sayısal Karakterler (PostgreSQL)
SELECT REGEXP_REPLACE('SQL Dersleri 172835 defa izlenmiş', '[^0-9]', '', 'g')

Sadece Sayısal Karakterler (MySQL)
SELECT REGEXP_REPLACE('SQL Dersleri 172835 defa izlenmiş', '[^0-9]', '')

Replace örneğinin sonucunu görelim
Sadece Sayısal Karakterler (Sonuç)
SQL'de REPLACE Fonksiyonu

Update İşleminde Replace Kullanımı

Peki bir tabloda Update (Güncelleme) işlemi yapılırken Replace işlemini nasıl kullanırız?
Örneğini şu şekilde verelim. Verilerle dolu bir tablo ve bu tablonun bazı sütunlarında belirlenen kelimelerin başka kelimelerle güncellenmesi gerekiyor. Bu tip sütun güncelleme örneği için basit bir tablo oluşturup örneğimizi anlamaya çalışalım.
Tablo Oluşturalım
CREATE TABLE Haberler(
id INT PRIMARY KEY NOT NULL IDENTITY(1,1),
baslik VARCHAR(100)
)

Oluşturmuş olduğumuz tabloya veriler ekleyelim.
Tablo Verileri
INSERT INTO Haberler
(baslik)
VALUES
('Av yasağı sonrası balık fiyatları ne oldu?'),
('Sanat dünyası üzgün'),
('Yağmur bulutları Adana üzerinde'),
('NASA, EXCITE teleskobunu fırlatmaya hazırlanıyor'),
('Yapay zeka eğitimleri devam ediyor'),
('Kitap severler Adana kitap fuarında buluştu'),
('Yerçekimi kadar önemli bir keşif')

Tablomuza verileri ekledik, özellikle yeşil ile belirtilmiş veriler var bunlarda Replace sonrası kelime değişikliğini göreceğiz.
Haberler Tablomuz
SQL'de REPLACE Fonksiyonu

Şimdi ise Haberler tablosundaki baslik adlı sütun içerisinde Adana geçen kelimeleri İstanbul ile değiştirerek güncelleyelim.
Update İşleminde Replace Kullnımı
UPDATE Haberler SET baslik = REPLACE(baslik, 'Adana', 'İstanbul')

Update sorgusunun çalışması sonrası tablomuzdaki Adana kelimesi yerine İstanbul kelimesinin geldiğini görüyoruz.
Örnek
SQL'de REPLACE Fonksiyonu

Yorumlar

Yorum Yaz

Avatar

REKLAM

DDos Koruma, Botnet Koruma, Layer 7 Saldırı koruması, Sanal sunucu, Vds sunucu

REKLAM

En Yeni Çizgi Filmler, Masallar ve Etkinlikler

REKLAM

SEO-Arama Motoru Optimizasyonu Uygulaması

REKLAM

Hayvan Sesleri Uygulaması

REKLAM

Çocuk Etkinlikleri Uygulaması

EN

  • Popüler
  • Yeni
  • Son Yorum