SQL FONKSİYONLARI
 Bir programlama dilinde fonksiyon denildiğinde akla
ilk olarak belli işleri yapmak üzere tasarlanmış kod
blokları gelir. Fonksiyonlarla çalışmak, tekrarlanan
işleri yapmak üzere, gereksiz kod tekrarını önleyen
çok sağlıklı bir yöntemdir.
SQL FONKSİYONLARI
 SQL Fonksiyonları da aynı mantıkla üretilen
fonksiyonlardır. Gerekli parametreleri alıp, sizin
istediğiniz sonuçları geri döndürürler.
 SQL Fonksiyonları Çoklu ve Tek Satır Fonksiyonları
olmak üzere ikiye ayrılır.
SQL FONKSİYONLARI
A-Çoklu Satır Fonksiyonları: Bir sütundaki tüm
satırlara uygulanırlar, bir hesap yapıp geriye tek bir değer
döndürürler.
1. AVG
2. COUNT
3. FIRST
4. LAST
5. MAX
6. MIN
7. SUM
SQL FONKSİYONLARI
B - Tek Satır Fonksiyonları : Tablonun bir satırını temel alarak
işlem yapan fonksiyonlardır. Ama her satır için ayrı ayrı işlem
yapmaktadır.
1.
2.
3.
4.
UCASE
LCASE
MID
LEN
5.
ROUND
6.
7.
8.
9.
NOW
DAY
MONTH
YEAR
KARAKTER FONKSİYONLARI
SAYISAL FONKSİYONLARI
TARİH FONKSİYONLARI
Futbolcu Tablosu
No
13
13
10
10
Ad
Sabri sarıoğlu
Selçuk şahin
messi
alex
takım
Cincon
Fenerbahçe
Barça
fenerbahçe
pas
-10
0
50
40
isabetoranı
0
25,2525
95,9595
75,7575
UCASE Fonksiyonu
Seçilen sütundaki tüm satırlar için büyük harfe
çevirme işlemini yaparlar.
Örnek:
SELECT UCASE(Ad) AS Tamamı_Büyük FROM futbolcu
Açıklaması: Futbolcu tablosunda ad sütunundaki tüm
ifadeleri(adları) büyük harfe çevirir.
UCASE Fonksiyonu
Soru: Takımı fenerbahçe olan futbolcuların
adlarını büyük olarak listeleyen sql kodu yazınız.
Cevap:
SELECT UCASE(Ad) AS Tamamı_Büyük FROM futbolcu
Where takım="fenerbahçe"
LCASE Fonksiyonu
Seçilen sütundaki tüm satırlar için küçük harfe
çevirme işlemini yaparlar.
Örnek:
SELECT LCASE(takım) FROM futbolcu
Açıklaması: Futbolcu tablosunda takım sütunundaki
tüm ifadeleri(takımları) küçük harfe çevirir.
LCASE Fonksiyonu
Soru: pas sayısı ortalamanın altında olan
futbolcularıadlarını küçük gösterecek şekilde
listeleyen sql kodu yazınız.
Cevap:
SELECT LCASE(ad) FROM futbolcu where pas<(select
avg(pas) from futbolcu)
MID Fonksiyonu
Seçilen kayıtları istenilen karakterinden başlayarak,
istenilen uzunluk kadar gösterir.
Örnek:
SELECT MID(Ad, 2, 3) FROM futbolcu
Açıklaması: Futbolcu tablosunda ad sütunundaki tüm
ifadelerin( adların) 2.karakterinden başlayarak 3
karakteri alır.
Çıktısı
Soru:
SELECT mid("fenerbahçe",3,3) +mid("cincon",4,3) )
Kodun çıktısı ne olur?
Cevap:
Soru: SELECT MID(Ad, 1,3)+MID(Ad, 11,4) FROM
futbolcu where pas=(select min(pas) from futbolcu)
Kodun çıktısı ne olur?
Cevap:
LEN Fonksiyonu
Seçilen sütundaki her satır için, kaydın harf sayısını,
yani uzunluğunu döndürür.
Örnek:
SELECT Len(takım) FROM futbolcu
Açıklaması: takım sütunundaki tüm takımların harf
sayılarını verir.
Çıktısı
Soru: fenerbahçe de oynayan futbolcuların
adlarının karakter sayılarını listeleyen sql kodu
yazınız.
Cevap:
SELECT len(ad) FROM futbolcu where
takım="fenerbahçe"
ROUND Fonksiyonu
Seçilen ondalıklı kayıtlar için yuvarlama işlemini
gerçekleştirir. Virgülden kaç basamak sonra
yuvarlayacağınızı da fonksiyona parametre olarak
verebiliyorsunuz. Fakat vermek zorunda değilsiniz.
Örnek:
Select round(isabetoranı,2) from futbolcu
Çıktısı
Tarih Fonksiyonu - Now
NOW() : Sistemin tarihini geri döndürür.
Örnek:
SELECT NOW() AS Sistem_Tarihi FROM futbolcu
Açıklaması: Bilgisayarınızdaki tarihi gösterir.
Çıktısı
Tarih Fonksiyonu - DAY
DAY() : Sistemin gün değerini geri döndürür.
Örnek:
SELECT DAY(NOW()) AS Sistem_Tarihi FROM futbolcu
Açıklaması: Bilgisayarınızdaki tarihi gösterir.
Çıktısı
Tarih Fonksiyonu - MONTH
MONTH() : Sistemin ay değerini geri döndürür.
Örnek:
SELECT month(NOW()) AS Sistem_Tarihi FROM
futbolcu
Açıklaması: Bilgisayarınızdaki ay değerini gösterir.
Çıktısı
Tarih Fonksiyonu - YEAR
YEAR() : Sistemin tarihini geri döndürür.
Örnek:
SELECT YEAR(NOW()) AS Sistem_Tarihi FROM
futbolcu
Açıklaması: Bilgisayarınızdaki tarihi gösterir.
Çıktısı
No
13
13
10
10
1.
2.
3.
4.
5.
6.
7.
8.
9.
Ad
Sabri sarıoğlu
Selçuk şahin
messi
alex
takım
Cincon
Fenerbahçe
Barça
fenerbahçe
pas
-10
0
50
40
isabetoranı
0
25,2525
95,9595
75,7575
Pas sayısı ortalamanın üzerinde olan futbolcuların adlarını ve takım adlarını yazan sql
kodu yazınız. ( çıktı: messi,barça-alex fenerbahçe )
Tablodaki ad ve takım alanlarını büyük harfe dönüştürerek listeleyen sql kodu
yazınız.
Takımı fenerbahçe olmayan futbolcuların adlarını küçük hafle listeleyen sql kodu
yazınız. ( çıktı: sabri sarıoğlu,messi )
Pas sayısı 40 olan takımın adını ilk üç harfi ile son iki harfini gösteren sql kodu
yazınız. ( çıktı: fençe )
Pas oranı 50% den büyük ve fenerbahçede oynayan futbolcunun adını tersten
yazacak(xelA) sql kodu yazınız. ( çıktı: xela )
İsabet oranı 50% nin üzerinde olan futbolcuların adlarının karakter sayısını veren sql
kodu yazınız. ( çıktı: 5,4 )
Fenerbahçede oynayan futbolcuların isabet oranlarını ondalık kısmında iki sayı
olacak şekilde yuvarlayan sql kodu yazınız. ( çıktı: 25,25 -75,76 )
Sistemin tarihini,gün,ay,yıl bilgilerini ayrı ayrı sogulayan sql kodu yazınız.(4 ayrı
sorgu olacak) ( çıktı: 5.12.2013 - 5 - 12 - 2013)
karakter uzunlukları aynı olan takımların adlarını listeleyen sql kodu yazınız.
( çıktı: fenerbahçe )
Şirket tablosu
şirketadı
Teknosa
Gold
Vatan
1.
2.
3.
4.
5.
6.
7.
8.
ürün
Bilgisayar
Telefon
dizüstü
adet
10
20
30
fiyat
1000
500
750
Kar
250,250
150,150
325,325
Karı 200 den büyük olan ve adeti 20 den büyük olan şirketin ilk ve son harfini
yazacak(gd) sql kodu yazınız.
Adeti 15 ten büyük olan veya fiyatı 500 den büyük olan şirketlerin karakter
sayısını veren sql kodu yazınız.
Telefon satan şirketin kar değerini virgülden sonra sayı gelmeyecek şekilde
yuvarlayan sql kodu yazınız.
Sistemin gün/ay/yıl bilgilerini yan yana yazacak şekilde yazdıran sql kodu
yazınız. (5/12/2013 şekilde çıktısı olacak)
Fiyatı ortalamanın üzerinde olan ve en düşük adete sahip ürünün adını yazan sql
kodu yazınız.
Tablodaki şirketadı ve ürün adlarını büyük harfe dönüştürerek listeleyen sql
kodu yazınız.
Şirketadı gold olmayan şirketlerin tüm bilgilerini listeleyen sql kodu yazınız.
Fiyatı 1000 olan ürünün ilk 5 harfi ile adeti 30 olan ürünün son 4 harfini
birleştirip gösteren sql kodu yazınız.( çıktı: bilgiüstü )
Download

SORGULAR - can aktop