Home / MAKALELER / Veri Tabanı / SQL String İşlemleri

SQL String İşlemleri

Pusula Akademi Oracle Grubundan Sadık Bozkurt’un string işlemleri konusunda yazdığı makalesi. Kendisini Tebrik ediyoruz ve devamını bekliyoruz.

Pusula Akademi Oracle Grubu Sadık BOZKURT Sql String İşlemleri

Concatenation  Operator
Bu fonksiyon ile tablodaki iki sütunu birbirine bağlayabiliriz. Bağlama işlemini yapmak için iki dikey çizgi karekterini (“||”) kullanırız.  Örnek olarak bir sorgu yazalım.
select first_name||last_name from employees
sorgunun sonucu ise bu şekilde olacaktır.
1String
Fakat dikkat ettiyseniz bu işlemde yazım hatası  var. Yani ad ile soyad birbirine girmiş durumda bunun çözümü için ise şu örneğe bakabilirsiniz.
select first_name||’ ‘||last_name from employees
2String
Bu şekilde iki sütunu birleştirdiğimiz gibi concat fonksiyonuyla da birleştirebiliriz. Uyguladığınız zaman yine aynı sonucu verdiğini göreceksiniz.
select concat(last_name,first_name) from employees
3string
İlk örnekte bahsettiğimim yazım hatasını ise sql sorguyu şu şekilde düzenlersek çözülecektir.
select concat (first_name, concat(‘ ‘,last_name)) from employees
String Karakter
Oracle da string bir ifade aramak istiyorsak şu şekilde bir sql cümle yazmamalıyız.
select first_name ,email from employees
where first_name=’Bruce’
4string
ASCII Fonksiyonları
Fonksiyon başlığından da anlaşılacağı gibi karakterlerin ASCII kodlarını bu fonksiyon sayesiyle bulabiliriz. Aşağıda ASCII fonksiyonunun syntaxını ve örneğine bakabilirsiniz.
ASCII Syntax  
5string
select ascii (‘A’) from dual
6strign
Karakter Fonksiyonu
Bu fonksiyonu kullanarak ise ASCII kodunu yazdığımız bir karakterin değerini bulabiliriz.
Syntax:
CHR(n PLS_INTEGER) RETURN VARCHAR2;
select chr(65) from dual
7string
COALESCE Fonksiyonu
Değerler listesindeki ilk  dolu (NULL olmayan) değeri bize döndüren komuttur. Bu sorguyu yazarken yazdığımız sütunların veri türleri ortak olmalı yani sütunlar ya string ifade olmalı yada number iki türü ortak yazamayız.
Syntax:
COALESCE(Sütun, Sütun, Sütun, …)
Örnek olarak gösterebilmek için kisiler adında bir tablo oluşturdum. İçindeki değerleri ise aşağıda gördüğünüz şekilde  doldurdum.
8string
SELECT COALESCE(adi, soyadi,email) FROM kisiler
yazdığım bu sql cümlesine gore null olmayan ilk dolu satırı bize verecek.
9string
UNISTR Fonksiyonu
UNI karakterleri almak için kullandığımız fonksiyon türüdür. En çok kullanılan UNI karakterler ve kodları şunlardır.
Syntax:
unistr(UNI Karakter numarası)
unistr(‘300’) grave accent ( ` )
unistr(‘301’) acute accent ( ´ )
unistr(‘302’) circumflex ( ^ )
unistr(‘303’) tilde ( ~ )
unistr(‘308’) umlaut ( ¨ )
Bu konuyla ilgili örnek aşağıda anlatılan compase fonksiyonu içinde anlatılacaktır.
Compase Fonksiyonu
Syntax:
COMPOSE(<metin_veya_sütun>)
Özel karakterleri almak için kullanılan fonksiyondur. Örneğin; â,é gibi  karakterleri almak için kullanılabilir.
Aşağıdaki gibi bir sorgu yazdığımızda e karakteri é şeklini alacaktır.
SELECT  COMPOSE(‘e’ || UNISTR(‘\0301’)) FROM dual;
10string
Convert Foksiyonu
Convert fonksiyonu ile databasemizin karakter setini değiştirebiliriz.Acıcak olursak örneğin databasenizde türkçe karakter içermeyen karakterler var ve siz bunları türkçe karaktere uygun hale getirmek istiyorsunuz böyle durumlarda convert fonksiyonu kullanılır.
Syntax:
CONVERT(Varolan_Karakter_Dizini, Hedef_Karakter_Seti, Kaynak_Karakter_Seti)
Örnek sorgu ve dönen sonuç
SELECT CONVERT(‘Ä Ê Í Õ Ø Z G Ü’,’US7ASCII’,’WE8ISO8859P1′)
FROM dual;
11string
İncelersek kaynak karakter setinde olmayan karakterler ? olarak döndü. Diğerleri ise uygun karakterlere dönüştürüldü.
Soundex Fonksiyonu
Aldığı string parametresine gore satırlar arasından 4 tane değer döndürür.
Syntax:
SOUNDEX(<Metin_veya_Sütun>
Soundex fonksiyonu örneği için ilk olarak bir tablo oluşturuyoruz.
CREATE TABLE soundex_örnek (
name VARCHAR2(15));
daha sonra tablomuza bir birine yakın karakterler ekleyelim.
INSERT INTO soundex_örnek VALUES (‘Turgut’);
INSERT INTO soundex_örnek VALUES (‘turgat’);
INSERT INTO soundex_örnek VALUES (‘Targut’);
INSERT INTO soundex_örnek VALUES (‘Tavsur’);
INSERT INTO soundex_örnek VALUES (‘tavrut’);
INSERT INTO soundex_örnek VALUES (‘Turgat’);
INSERT INTO soundex_örnek VALUES (‘Taygur’);
Soundex fonksiyonu sorğumuz ise şu şekilde olsun.
SELECT *
FROM soundex_örnek
WHERE SOUNDEX(name) = SOUNDEX(‘Turgut’);
Döndürdüğü sonuç bu şekilde olur.
12string
Translate Fonksiyonu
Translate fonksiyonu, referans gösterilen ifadenin değiştirilecek karakterlerini, yeni karakterlere çevirir.
Syntax:
TRANSLATE(İfade, degiştirilecek_karakterleri, yeni_karakterler)
Örnek:
select translate(‘Neena’,’Nee’,’NAA’) from employees
where employee_id=101
13string
Replace Fonksiyonu
Karekter içerisinde, aranacak karakteri bulur ve değiştirilecek karakter ile değiştirir.
Syntax:
REPLACE( Karakter, Değiştirilecek_Karakter,Yerine_Geçecek_Karakter)
Örnek:
select replace(‘Steven’,’en’,’i’) Name from employees
where employee_id=127
Sonuç;
14string
Reverse Fonksiyonu
Reverse yazdığımız değeri tersten yazan fonksiyondur.
Syntax:
REVERSE(<Metin_veya_Sütun>)
Örnek olması amacıyla sizlere şu sorguyu hazırladım.
select first_name from employees
where employee_id in (101,102,103,104)
Bu şekilde yazdığımızda employee_id si 101,102,103,104 olan kişilerin adlarını getirdi.
15string
Birde bunu reverse ile yazalım ve dönen sonucumuzu inceleyelim.
select reverse(first_name) from employees
where employee_id in (101,102,103,104)
16string
Gördüğünüz gibi ters şekilde yazdırdı.
Sizlere bu makalede string fonksiyonlarını anlatmaya çalıştım. String fonksiyonları çok fazla ve sitede bazı fonksiyonlar paylaşıldığı için sizlere sadece bu kadar string fonksiyonlarını derledim.
Umarım faydalı bir yazı olmuştur.

About Yusuf Arslan

Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra kariyerine Datawarehouse-Database Uzmanı olarak devam etmektedir Sitenin kurucusu ve yazarıdır. yusufarslanbm@gmail.com adresinden bana ulaşabilirsiniz.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın