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. UCASE 2. LCASE 3. MID KARAKTER FONKSİYONLARI 4. LEN 5. ROUNDSAYISAL FONKSİYONLARI 6. NOW 7. DAY TARİH FONKSİYONLARI 8. MONTH 9. YEAR SQL FONKSİYONLARI
NoAdtakımpas isabetoranı 13Sabri sarıoğluCincon Selçuk şahinFenerbahçe0 25, messiBarça50 95, alexfenerbahçe40 75,7575 Futbolcu Tablosu
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" UCASE 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) LCASE 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. MID Fonksiyonu Çı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:
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. LEN Fonksiyonu Çı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"
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 ROUND Fonksiyonu Çıktısı
NOW() : Sistemin tarihini geri döndürür. Örnek: SELECT NOW() AS Sistem_Tarihi FROM futbolcu Açıklaması: Bilgisayarınızdaki tarihi gösterir. Tarih Fonksiyonu - Now Çıktısı
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. Tarih Fonksiyonu - DAY Çıktısı
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. Tarih Fonksiyonu - MONTH Çıktısı
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. Tarih Fonksiyonu - YEAR Çıktısı
1. 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 ) 2. Tablodaki ad ve takım alanlarını büyük harfe dönüştürerek listeleyen sql kodu yazınız. 3. Takımı fenerbahçe olmayan futbolcuların adlarını küçük hafle listeleyen sql kodu yazınız. ( çıktı: sabri sarıoğlu,messi ) 4. 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 ) 5. Pas oranı 50% den büyük ve fenerbahçede oynayan futbolcunun adını tersten yazacak(xelA) sql kodu yazınız. ( çıktı: xela ) 6. İsabet oranı 50% nin üzerinde olan futbolcuların adlarının karakter sayısını veren sql kodu yazınız. ( çıktı: 5,4 ) 7. 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 ) 8. Sistemin tarihini,gün,ay,yıl bilgilerini ayrı ayrı sogulayan sql kodu yazınız.(4 ayrı sorgu olacak) ( çıktı: ) 9. karakter uzunlukları aynı olan takımların adlarını listeleyen sql kodu yazınız. ( çıktı: fenerbahçe ) NoAdtakımpas isabetoranı 13Sabri sarıoğluCincon Selçuk şahinFenerbahçe0 25, messiBarça50 95, alexfenerbahçe40 75,7575
1. 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. 2. 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. 3. Telefon satan şirketin kar değerini virgülden sonra sayı gelmeyecek şekilde yuvarlayan sql kodu yazınız. 4. 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) 5. Fiyatı ortalamanın üzerinde olan ve en düşük adete sahip ürünün adını yazan sql kodu yazınız. 6. Tablodaki şirketadı ve ürün adlarını büyük harfe dönüştürerek listeleyen sql kodu yazınız. 7. Şirketadı gold olmayan şirketlerin tüm bilgilerini listeleyen sql kodu yazınız. 8. 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ü ) şirketadıürün adet fiyat Kar TeknosaBilgisayar ,250 GoldTelefon ,150 Vatandizüstü ,325 Şirket tablosu