SQL Server Metinsel ve Aritmetik Fonksiyonlar

SQL Server Metinsel ve Aritmetik Fonksiyonlar
SQL

SQL Server Metinsel ve Aritmetik Fonksiyonlar

Bu yazımızda SQL’de metinsel ve aritmetik fonksiyonları kullanarak metin ya da nümerik tabanlı verilerimiz üzerinde nasıl uzun uzadıya sorgu yazmaktan kurtulup tek satırda hızlı ve kolay sonuçlar elde edebileceğimize yakından bakacağız.

Metinsel Fonksiyonlar

SQL Server Metinsel Fonksiyonlar, metin tabanlı verilerimiz üzerinde bir takım hazır fonksiyonlar ile çeşitli işlemler yapmamızı sağlar. Örneğin bir sütun değerini büyük ya da küçük harfe dönüştürebilir, sol veya sağ tarafından istediğimiz değerleri silebilir, değerleri tersinden yazdırabilme gibi pek çok metinsel işlemlerimizi uzun uzadıya yazmak yerine bu metinsel fonksiyonlarımızı kullanarak kısa süre içerisinde halledebiliriz.

Şimdi, örneklerle birlikte metinsel fonksiyonlarımızı yakından tanıyalım;

1. ASCII

Girilen karakterin ASCII kod tablosundaki karşılığını verir. ASCII kod tablosu ise bir karakter kodlama sistemidir. Klavyede bastığım her tuşun ASCII kod tablosunda bir değeri vardır. Arka planda o döner. Daha fazla bilgi için ASCII Kod Tablosu inceleyebilirsiniz.

Örnek: Büyük B harfinin ASCII kod tablosunda hangi değere karşılık geldiğini bulalım.

-- ASCII
SELECT ASCII('B') AS ASCI_KOD_KARSILIGI

Çıktımız aşağıdaki gibi olacaktır:

2. CHAR

ASCII fonksiyonunda girilen karakterin sayısal değerini alıyorduk. CHAR fonksiyonumuzda ise girilen ASCII kodunun hangi karaktere denk geldiğini öğreniyoruz.

Örnek: ASCII kod tablosunda 66 olan sayının hangi karaktere denk geldiğini bulalım.

--CHAR 
SELECT CHAR(66) AS ASCI_KARAKTER_KARSILIGI

Çıktımız aşağıdaki gibi olacaktır:

3. CHAR INDEX

İki parametre alır. İlk parametrenin 2.Parametrede kaçıncı indexten itibaren başladığını verir.

Örnek: Dünya kelimesinin 2.Parametrede başlangıç değerini bize döndüren sorgumuzu yazalım.

-- CHAR INDEX
SELECT CHARINDEX('Dünya','Merhaba Dünya') AS KACINCI_INDEXTEN_BASLIYOR

Çıktımız aşağıdaki gibi olacaktır:

Örnek: Bu CHARINDEX fonksiyonumuz 2.Parametreyi alabildiği gibi 3.Parametreyi de alabilir. Sorgumuza “Siber Güvenlik Ekosistem” cümlesindeki siber kelimesini bir daha ekleyip parametremizi de 5 olarak verelim. Böylelikle 2.Parametremizde 5.Karakterden sonra siber kelimesini arayacak ve kaçıncı karakterde buluyorsa o değeri bize döndürecek.

--CHAR INDEX
SELECT CHARINDEX('Siber','Siber Ekosistem Siber Güvenlik',5) AS IKINCI_SIBER_IFADESİ_KACINCI_INDEX

Çıktımız aşağıdaki gibi olacaktır:

4. CONCAT

Girilen parametrelerimizi birleştirmemize yarayan fonksiyondur.

Örnek: Sorgumuza girdiğimiz parametreleri CONCAT fonksiyonu ile birleştirelim.

--CONCAT
SELECT CONCAT('Merhaba','Dünya' ) AS BIRLESTIRME

Çıktımız aşağıdaki gibi olacaktır:

5. LEFT

LEFT fonksiyonumuz 2 parametre alır. İlk parametremizde herhangi bir cümle gireriz. İkinci parametremizde ise bu girilen ilk cümleden kaç karakter alacağımızı belirleriz.

Örnek: Sorgumuza herhangi bir cümle girelim ve LEFT fonksiyonu ile ilk 2 karakterini alalım.

--LEFT
SELECT LEFT('Selam Mert',2) AS KAC_KARAKTER_ALALIM

Çıktımız aşağıdaki gibi olacaktır:

6. LEN

Girilen parametrenin kaç karakter olduğu bilgisini veren fonksiyonumuzdur.

Örnek: Sorgumuza herhangi bir cümle yazalım ve kaç karakterden oluştuğunu LEN fonksiyonumuzla öğrenelim

--LEN
SELECT LEN('Türkiyenin En Etkili Yazılım Akademisi Codementors') AS KAC_KARAKTER

Çıktımız aşağıdaki gibi olacaktır:

7. LOWER

Parametremize girilen değeri küçük harfe dönüştüren fonksiyonumuzdur.

Örnek: Sorgumuza ‘CODEMENTORS’ kelimesini verelim ve LOWER fonksiyonumuzla tamamen küçük harfe çevirelim.

--LOWER
SELECT LOWER('CODEMENTORS') AS KUCULT

Çıktımız aşağıdaki gibi olacaktır:

8. LTRIM

Parametremize girilen değerin sol tarafındaki boşluğu kaldırır.

Örnek: Sorgumuza ‘ Merhaba Codementors Ailesi’ yazalım ve LTRIM fonksiyonumuzla boşluğu nasıl sildiğini görelim.

--LTRIM
SELECT LTRIM('  Merhaba Codementors Ailesi') AS SOL_BOSLUK_SİL

Çıktımız aşağıdaki gibi olacaktır:

9. REPLACE

REPLACE fonksiyonu 3 parametre alır. 1. Parametre cümledir. 2. Parametreye girdiğimiz değeri 3. Parametre ile değiştirmemizi sağlar.

Örnek: Sorgumuzda girdiğimiz ‘Merhaba Codementors Aılesı’ cümlesindeki ‘ı’ harfini ‘i’ harfi ile değiştirelim.

--REPLACE
SELECT REPLACE('Merhaba Codementors Aılesı','ı','i') AS HARF_DEGISTIRELIM

Çıktımız aşağıdaki gibi olacaktır:

10. REPLICATE

1.Parametrede girilen değeri 2. Parametre sayısı kadar yazar.

Örnek: Sorgumuzda girdiğimiz ‘Merhaba Codementors Aılesı’ cümlesini REPLICATE fonksiyonu ile 2 kere yazdıralım.

--REPLICATE
SELECT REPLICATE('Merhaba Codementors Ailesi/',2) AS IKI_KERE_YAZDIRALIM

Çıktımız aşağıdaki gibi olacaktır:

11. REVERSE

Parametremize girilen değeri tersten yazmamızı sağlar.

Örnek: ‘SQL Öğreniyorum’ cümlesini REVERSE fonksiyonu ile tersten yazdıralım.

--REVERSE
SELECT REVERSE('SQL Öğreniyorum') AS TERSTEN_YAZDIR

Çıktımız aşağıdaki gibi olacaktır:

12. RIGHT

Sorgumuzda yazdığımız herhangi bir cümlenin sağ taraftan ilk 5 karakterini ya da 10 karakterini isteğimize göre alabiliriz.

Örnek: ‘Merhaba Codementors Ailesi’ cümlemizden ‘Ailesi’ kelimesini RIGHT fonksiyonumuz ile alalım.

--RIGHT
SELECT RIGHT('Merhaba Codementors Ailesi',6) AS SAG_6_KARAKTER

Çıktımız aşağıdaki gibi olacaktır:

13. UPPER

Parametremize girdiğimiz tüm karakterleri büyük yapar LOWER fonksiyonumuzun tam tersi özelliğindedir.

Örnek: Sorgumuzda ‘sql öğreniyorum’ ifadesini UPPER fonksiyonumuz ile büyütelim.

--UPPER
SELECT UPPER('sql öğreniyorum') AS BUYULTELIM

Çıktımız aşağıdaki gibi olacaktır:

14. RTRIM

Parametremize girdiğimiz değerin sağ tarafındaki boşluğu kaldırır.

Örnek: Sorgumuza ‘Merhaba Codementors Ailesi   ’ cümlemizdeki sağ taraftaki bulunan boşluğu kaldırmak için RTRIM fonksiyonumuzu kullanalım.

--RTRIM
SELECT RTRIM('Merhaba Codementors Ailesi    ') AS SAG_BOSLUK_SIL

Çıktımız aşağıdaki gibi olacaktır:

15. SUBSTRING

SUBSTRING fonksiyonumuz 3 parametre alır. 1.Parametremize herhangi bir cümle giriyoruz. 2.Parametremize kesilmesini istediğimiz index değerinin kaçıncı değerden başlayacağı 3.Parametremize kaç tane karakterin kesilmesini istiyorsak onu yazıyoruz.

Örnek: Sorgumuza girdiğimiz cümlemizi 11.Karakterden itibaren 5 karakter kesen sorgumuzu yazalım.

--SUBSTRING
SELECT SUBSTRING('Türkiyenin En Etkili Yazılım Akademisi',11,5) AS KESME_ISLEMI

Çıktımız aşağıdaki gibi olacaktır:

Aritmetik Fonksiyonlar

1. ABS

Absolute kelimesinin kısaltmasından oluşur. Mutlak değer işlemlerimizi bu fonksiyon ile yaparız.

Örnek: -10 sayısının mutlak değerini ABS fonksiyonumuz aracılığıyla alalım.

--ABS
SELECT ABS(-10) AS MUTLAK_DEGER

Çıktımız aşağıdaki gibi olacaktır:

2. CEILING

Girilen ondalıklı sayıyı bir üst tam sayıya yuvarlar.

Örnek: ‘9.99’ ondalıklı sayısını üstte yuvarlayan CEILING fonksiyonumuz.

-- CEILING
SELECT CEILING(9.99) AS UST_YUVARLA

Çıktımız aşağıdaki gibi olacaktır:

3. POWER

Üs alma işlemlerimizi bu fonksiyonumuz ile yaparız.

Örnek: 2 sayısının 4. Üssünü alan sorgumuzu POWER fonksiyonumuz aracılığıyla yapalım.

--POWER
SELECT POWER(2,4) AS ÜSSÜ

Çıktımız aşağıdaki gibi olacaktır:

4. FLOOR

Türkçe karşılığı zemin anlamına gelir. Girdiğimiz değeri ondalıklı sayıyı alta yuvarlayan fonksiyonumuzdur.

Örnek: Sorgumuza girdiğimiz ‘13.2’ ondalıklı sayısını FLOOR fonksiyonumuz ile alt tam sayıya yuvarlayalım.

--FLOOR
SELECT FLOOR(13.2) AS ALT_YUVARLA

Çıktımız aşağıdaki gibi olacaktır:

5. RAND

0 ile 1 arasında rastgele değer üreten fonksiyonumuzdur.

Örnek: Rastgele değer üreten sorgumuzu yazalım.

--RAND
SELECT RAND() AS RASTGELE_SAYI_URET

Sorgumuz rastgele bir değer döndüreceğinden bu bölümde çıktı vermeyeceğim.

6. ROUND

Girdiğimiz ondalıklı değerin virgülden sonra kaçıncı basamağından itibaren yuvarlanacağını bildirir.

Örnek: ‘19.45268’ sayısının virgülden sonra ikinci basamağından itibaren yuvarlayan sorgumuzu yazalım.

--ROUND
SELECT ROUND(19.45268,2) AS IKINCI_BASAMAKTAN_ITIBAREN_YUVARLA

Çıktımız aşağıdaki gibi olacaktır:

7. SQRT

Girdiğimiz sayının karekökünü hesaplayan fonksiyonumuzdur.

Örnek: 36 sayısının karekökünü hesaplayan sorgumuzu yazalım.

--SQRT
SELECT SQRT(36) AS KAREKOK

Çıktımız aşağıdaki gibi olacaktır:

8. SQUARE

Girdiğimiz sayının karesini hesaplayan fonksiyonumuzdur.

Örnek: 5 sayısının karesini hesaplayan sorgumuzu yazalım.

--SQURE
SELECT SQUARE(5) AS KARE_HESAPLA

Çıktımız aşağıdaki gibi olacaktır:

Bu yazımızda, metinsel ve aritmetik fonksiyonların neler olduğunu, kullanım örneklerini, sorgularımızda bize nasıl hız ve performans kazandırdığını öğrendik.