VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-5-DML-2 Fonksiyonlar ve Özet Bilgiler (Gruplama)
FONKSİYONLAR- Metin Fonksiyonları 1. Metin Birleştirme SELECT Ad, Soyad, Ad+’ - ’+Soyad As Birleşim FROM Personel 2. Metnin Sağ/Solundan Parça Almak Right(Ad,1) as Son_Harf, Left(Soyad,1) as İlk_Harf Ad Soyad Birleşim Son_Harf İlk_Harf Ali Ak Ali – Ak İ A Veli Kara Veli – Kara K Can Gri Can – Gri n G
FONKSİYONLAR- Metin Fonksiyonları 3. Metinden Parça Almak SELECT Ad, Substring (ad,1,2) as Parça1 Substring (ad,2,1) as Parça2 FROM Personel 4. Büyük/Küçük Harf Dönüşümü Soyad, Upper(Ad) as Buyuk_Harf Lower(Soyad) as Kucuk_Harf Ad Parça1 Parça2 Buyuk_Harf Kucuk_Harf Ali Al l ALİ ali Veli Ve e VELİ veli Can Ca a CAN can
FONKSİYONLAR- Metin Fonksiyonları 4. Boşlukları Almak SELECT Ad, Ltrim(ad) as Soldan_Bosluksuz, Rtrim(ad) as Sagdan_Bosluksuz FROM Personel * TRIM yok 5. Metin Uzunluğu Len(ad) as Uzunluk Ad Soldan_Bosluksuz Sagdan_Bosluksuz Uzunluk Ali 3 _Ali 4 _Ali_ Ali_ 5
FONKSİYONLAR- Metin Fonksiyonları 6. Replace SELECT Ad, Replace(ad, ‘can’,’murat’) as Degisik FROM Personel 7. Metin Arama Charindex(‘a’, ad,1) as Konum1, Charindex(‘a’, ad,2) as Konum2 Charindex(‘al’, ad,1) as Konum3 Ad Degisik Konum1 Konum2 Konum3 Ali 1 Veli Can Murat 2 Ali Can 6
FONKSİYONLAR- Metin Fonksiyonları 8. Reverse SELECT Ad, Reverse(ad) as Tersi FROM Personel Ad Tersi Ali ilA Veli ileV Can naC Ali Can naC ilA
FONKSİYONLAR- Sayısal Fonksiyonlar 1. Mutlak Değer (ABS) SELECT say1, ABS(say1) as Mutlak FROM Veriler 2. Aşağı/Yukarı Yuvarla Floor(say1) as Aşağı, Ceiling(say1) as Yukarı Say1 Mutlak Aşağı Yukarı 1,1 1 2 -2,8 2,8 -3 -2
FONKSİYONLAR- Sayısal Fonksiyonlar 3. Kuvvet/Üs Alma Power(taban,üs) SELECT say1, Power(say1,2) as Karesi, Power(say1,3) as Küpü FROM Veriler 4. Karekök Alma Sqrt(4) as Dordun_Karekökü Sqrt(16) as Onaltının_Karekökü Say1 Karesi Küpü Dordun_Karekökü Onaltının Karekökü 2 4 8 3 9 27 16 64
FONKSİYONLAR- Sayısal Fonksiyonlar 5. Toplama, Ortalama, Min, Max, Count SELECT Sum(say1) as Toplam, Avg(say1) as Ortalama, Min(say1) as Minimum, Max(say1) as Maximum, Count(say1) as Adet, FROM Veriler Tabloda «3,5,8,4» olduğunu varsayarsak 6. Kalan ve Bolum say1, say1 / 3 as Bolum, say1 %3 as Kalan Say1 Bolum Kalan 3 1 6 2 8 4 Toplam Ortalama Minimum Maximum Adet 20 5 3 8 4
FONKSİYONLAR- Tarih/Saat Fonksiyonları 1. Sistem Saat/Tarihi SELECT getdate() Çıktı: 2015-11-10 15:15:05.420 2. Tarih/Saat Parçası Almak getdate(), datepart(year, getdate()) as Yıl, datepart(month, getdate()) as Ay, datepart(day, getdate()) as Gun, datepart(hour, getdate()) as Saat, datepart(minute, getdate()) as Dakika, datepart(week, getdate()) as HaftaNo, datepart(quarter, getdate()) as Çeyrek
FONKSİYONLAR- Tarih/Saat Fonksiyonları 3. Tarih İsmi (Datename) SELECT getdate(), datename(month, getdate()) as Ay, datename(week, getdate()) as Hafta, datename(weekday) as Gun, datename(minute) as Dakika 4. Datediff ile Tarih Farkı Datediff(parçatürü, ilktarih, sontarih) : Son – ilk şeklinde fark datediff(year,'2005.12.31','2006.01.01') as Yýl_Fark, datediff(month, '2005.12.31', '2006.01.01') as Ay_Fark, datediff(day, '2005.12.31', '2006.01.01') as Gun_Fark, datediff(day, '2005.12.30', '2006.01.01') as Gun_Fark2, datediff(day, '2005.11.30', '2006.01.01') as Gun_Fark3
FONKSİYONLAR- Tarih/Saat Fonksiyonları 5. Tarihe Ekleme SELECT GETDATE() AS Bugun, Dateadd (year,1, getdate()) as Bir_YilSonra, Dateadd(day,1,getdate()) as Bir_Gun_Sonra, Dateadd(day,365, getdate()) as Bir_Yil_Sonra, Dateadd(week,1, getdate()) as BirHafta_Sonra
Fonksiyonlar ve Özet Bilgiler (Gruplama) PERSONEL Tablosu Perno Ad Dept Gorev Ucret GorevBasTar 1 Ali MUH Memur 2500 1.1.2001 2 Can SAT 2000 2.2.2001 3 ARG 3000 3.3.2003 4 Cem Sef 3500 4.4.2004 5 Eda 2750 5.5.2005 6 Canan Mudur 4000 6.6.2006 7 3600 7.7.2007 8 Abdullah 1900 8.8.2008 9 Veli 1500 9.9.2009 10 Ali Can 8.5.2005 Tüm çalışanların aldığı toplam ücret? SELECT Sum(Ucret) FROM Personel MUH bölümü çalışanlarının aldığı toplam ücret? SELECT Sum(Ucret) FROM Personel Where Dept=‘MUH’ Her bölümün çalışanlarının aldığı toplam ücretler? SELECT Dept, Sum(Ucret) FROM Personel GROUP BY Dept
Fonksiyonlar ve Özet Bilgiler (Gruplama) PERSONEL Tablosu Perno Ad Dept Gorev Ucret GorevBasTar 1 Ali MUH Memur 2500 1.1.2001 2 Can SAT 2000 2.2.2001 3 ARG 3000 3.3.2003 4 Cem Sef 3500 4.4.2004 5 Eda 2750 5.5.2005 6 Canan Mudur 4000 6.6.2006 7 3600 7.7.2007 8 Abdullah 1900 8.8.2008 9 Veli 1500 9.9.2009 10 Ali Can 8.5.2005 Tüm çalışanların aldığı ortalama ücret? SELECT Avg(Ucret) FROM Personel MUH bölümü çalışanlarının aldığı ortalama ücret? SELECT Avg(Ucret) FROM Personel Where Dept=‘MUH’ Her bölümün çalışanlarının aldığı ortalama ücretler? SELECT Dept, Avg(Ucret) FROM Personel GROUP BY Dept
Fonksiyonlar ve Özet Bilgiler (Gruplama) PERSONEL Tablosu Perno Ad Dept Gorev Ucret GorevBasTar 1 Ali MUH Memur 2500 1.1.2001 2 Can SAT 2000 2.2.2001 3 ARG 3000 3.3.2003 4 Cem Sef 3500 4.4.2004 5 Eda 2750 5.5.2005 6 Canan Mudur 4000 6.6.2006 7 3600 7.7.2007 8 Abdullah 1900 8.8.2008 9 Veli 1500 9.9.2009 10 Ali Can 8.5.2005 Tüm çalışanlar arasında alınan en düşük ücret? SELECT Min(Ucret) FROM Personel MUH bölümü çalışanları arasındaki en düşük ücret? SELECT Min(Ucret) FROM Personel Where Dept=‘MUH’ Her bölümün çalışanlarının aldığı en düşük ücretler? SELECT Dept, Min(Ucret) FROM Personel GROUP BY Dept
Fonksiyonlar ve Özet Bilgiler (Gruplama) PERSONEL Tablosu Perno Ad Dept Gorev Ucret GorevBasTar 1 Ali MUH Memur 2500 1.1.2001 2 Can SAT 2000 2.2.2001 3 ARG 3000 3.3.2003 4 Cem Sef 3500 4.4.2004 5 Eda 2750 5.5.2005 6 Canan Mudur 4000 6.6.2006 7 3600 7.7.2007 8 Abdullah 1900 8.8.2008 9 Veli 1500 9.9.2009 10 Ali Can 8.5.2005 Tüm çalışanlar arasında alınan en yüksek ücret? SELECT Max(Ucret) FROM Personel MUH bölümü çalışanları arasındaki en yüksek ücret? SELECT Max(Ucret) FROM Personel Where Dept=‘MUH’ Her bölümün çalışanlarının aldığı en yüksek ücretler? SELECT Dept, Max(Ucret) FROM Personel GROUP BY Dept
Fonksiyonlar ve Özet Bilgiler (Gruplama) PERSONEL Tablosu Perno Ad Dept Gorev Ucret GorevBasTar 1 Ali MUH Memur 2500 1.1.2001 2 Can SAT 2000 2.2.2001 3 ARG 3000 3.3.2003 4 Cem Sef 3500 4.4.2004 5 Eda 2750 5.5.2005 6 Canan Mudur 4000 6.6.2006 7 3600 7.7.2007 8 Abdullah 1900 8.8.2008 9 Veli 1500 9.9.2009 10 Ali Can 8.5.2005 Tüm çalışanların sayısı? SELECT Count(*) FROM Personel Count(*) ile Count(AlanAdı) kullanımı MUH bölümü çalışanlarının sayısı? SELECT Count(Ad) FROM Personel Where Dept=‘MUH’ Her bölümün çalışanlarının sayısı? SELECT Dept, Count(Perno) FROM Personel GROUP BY Dept
Fonksiyonlar ve Özet Bilgiler (Gruplama) PERSONEL Tablosu Perno Ad Dept Gorev Ucret GorevBasTar 1 Ali MUH Memur 2500 1.1.2001 2 Can SAT 2000 2.2.2001 3 ARG 3000 3.3.2003 4 Cem Sef 3500 4.4.2004 5 Eda 2750 5.5.2005 6 Canan Mudur 4000 6.6.2006 7 3600 7.7.2007 8 Abdullah 1900 8.8.2008 9 Veli 1500 9.9.2009 10 Ali Can 8.5.2005 3 kişi ve üzerinde çalışanı olan bölümlerin isim ve çalışan sayılarını listeleyin. SELECT Dept, Count(Perno) FROM Personel GROUP BY Dept HAVING Count(Perno)>=3 Çalışanlarının aldığı Ortalama ücretin 2850 liranın aldında olduğu bölümlerin isim ve ortalama ücretlerini listeleyin. SELECT Dept, Avg(Ucret) FROM Personel HAVING Avg(Ucret)<2850
Fonksiyonlar ve Özet Bilgiler (Gruplama) PERSONEL Tablosu Perno Ad Dept Gorev Ucret GorevBasTar 1 Ali MUH Memur 2500 1.1.2001 2 Can SAT 2000 2.2.2001 3 ARG 3000 3.3.2003 4 Cem Sef 3500 4.4.2004 5 Eda 2750 5.5.2005 6 Canan Mudur 4000 6.6.2006 7 3600 7.7.2007 8 Abdullah 1900 8.8.2008 9 Veli 1500 9.9.2009 10 Ali Can 8.5.2005 Her bölümün içindeki çalışanların görev çeşidine göre dağılımlarını (hangi bölümde hangi görevden kaçar kişi çalıştığını) listeleyin. SELECT Dept, Gorev, Count(Gorev) FROM Personel GROUP BY Dept, Gorev ORDER BY Dept