Veri Tabanı Uygulamaları 2

Bu Notlar Bucak Hikmet Tolunay MYO Bilgisayar Teknolojileri ve Programlama Bölümü Veri Tabanı ve Yönetim Sistemleri 1 Dersinde yapmış olduğumuz örnek uygulamaların Öğrencim Orçun Hanay tarafından düzenlenmiş halidir.

             Öğrencim Orçun Hanay a Katkılarından dolayı Teşekkür Ederim.

24.03.09 Salı

 

Üye Tablosunu Maaşlara göre sıralayın ?

 

SELECT *

FROM uye

order by maas  // Bir kriter yoksa WHERE kullanılmaz.

Not : Maaşları büyükten küçüğe sıralı gösteriyor.

____________________

 

SELECT *

FROM uye,departman

WHERE  uye.departman_id=departman.id and departman.ad ="güvenlik"

order by maas;

 

Not : Tüm alanları göstererek Güvenlik cileri gösterir maaşları sıralı şekilde.

 

SELECT uye.ad,uye.soyad,uye.maas,departman.ad

FROM uye,departman

WHERE  uye.departman_id=departman.id and departman.ad ="güvenlik"

order by maas;

 

Not  : Departmanı güvenlik olanların ad,soyad ve maaşlarını gösterir.

____________________

 

SELECT *

FROM uye

WHERE  maas>550 and maas <950

order by maas;

 

SELECT *

FROM uye

WHERE  maas between 550 and 950    // BETWEEN  arasında kileri göstermek için kullanılır. ,

order by maas;

Not : Maaşı 550 den büyük ve 950 den küçük olanları gösterir.

____________________

 

SELECT  count(*) as toplamuyesayısı

FROM uye

Not : Count Sayma işlemi yapar.Üye tablosunu sayar.

___________________

 

SELECT  count(*) as toplamuyesayısı

FROM uye,departman

WHERE uye.departman_id=departman.id and departman.ad="güvenlik";

Not : KAç adet güvenlikçi olduğunu sayar.

___________________

 

SELECT  max(maas) as enyuksekmaas

FROM uye

Not : En yüksek maaşı gösterir.

__________________

 

SELECT  min(maas) as endusukmaas

FROM uye

Not : En Düşük maaşı gösterir.

__________________

 

SELECT   ad,soyad,maas

FROM uye

WHERE maas = (SELECT min(maas) as endusukmaas FROM uye)

Not : Maaşı 400 olan ların isimlerini soy isimlerini gösterir.

__________________

 

SELECT   SUM(maas) as toplammaas  // SUM topalm alır.

FROM uye

Not : Toplam maaşı gösterir.  

__________________

 

SELECT   SUM(maas) as toplammaas

FROM uye,departman

WHERE  uye.departman_id=departman.id and departman.ad="bilgi işlem";

 

SELECT   SUM(maas) as toplammaas

FROM uye

WHERE  departman_id=(SELECT id FROM departman WHERE ad = "bilgi işlem")

 

Not : Bilgi işlemcilerin maaş toplamını gösterir.

_________________

 

SELECT   SUM(maas)/count(*) as toplammaas

FROM uye

WHERE  departman_id=(SELECT id FROM departman WHERE ad = "bilgi işlem")

Not : Bilgi işlemcilerin maaşını kişi sayısına böldü.

 

SELECT   avg(maas)  /// kişi sayısına göre ortamala alıyor.

FROM uyeWHERE  departman_id=(SELECT id FROM departman WHERE ad = "bilgi işlem")

__________________

 

SELECT  uye.ad,uye.soyad,uye.maas

FROM uye,departman

WHERE uye.departman_id=departman.id and departman.ad="bilgi işlem" and uye.maas>(select avg(maas) from uye,departman where uye.departman_id=departman.id and departman.ad="bilgi işlem")

Not : Bilgi işlemde en yüksek maaşı alanları gösterir.

__________________

 

Güvenlik ve bilgi işlemde çalışanların ortalama maaşlarını bulunuz?

 

SELECT  avg(maas) as bilgiislem_ve_güvenlik_maas_ortalamaları

FROM uye,departman

WHERE uye.departman_id=departman.id and ((departman.ad="bilgi işlem") or (departman.ad="güvenlik"))

_________________

 

26.03.09 Perşembe

 

Üyelerin maaşlarının yarısı avans olarak verilecek

 

SELECT ad,soyad,maas/2 as avans

FROM uye

 

Not : Avansları gösterir.,

___________________

 

SELECT uye.ad,uye.soyad,maas*1.5 as pirim

FROM uye,departman

WHERE uye.departman_id=departman.id and departman.ad="bilgi işlem";

 

Not : Pirim gösterir.

__________________

 

SELECT maas/2 as toplammaas

FROM uye,departman

WHERE uye.departman_id=departman.id and departman.ad="bilgi işlem";

Not : Bilgi işlemcilerin maaş ların nın yarısını gösterir.

___________________

 

SELECT  departman.ad, count(*) as uyesayisi

FROM uye,departman

WHERE uye.departman_id=departman.id  

Group by departman.ad     /// Group bye grup sekilde sayar

Not : Departman adına göre drupladı. departman dakileri sayar.

___________________

 

SELECT  departman.ad,sum(maas) as toplammaas

FROM uye,departman

WHERE uye.departman_id=departman.id  

Group by departman.ad

Order by Sum(maas);

Not : Departman adına göre drupladı. Maas a göre sıralı gösterir.

___________________

 

SELECT  uye.soyad,sum(maas) as toplammaas

FROM uye,departman

WHERE uye.departman_id=departman.id  

Group by uye.soyad

Order by Sum(maas);

Not : Soyada göre grupladı maas a göre gösterdi.

___________________

 

SELECT  uye.maas,count(*) as sayi

FROM uye,departman

WHERE uye.departman_id=departman.id  

Group by uye.maas

Order by count(*);

Not : Maas a göre grupladı. ????

____________________

 

SELECT  departman.ad,count(*) as sayi

FROM uye,departman

WHERE uye.departman_id=departman.id  

Group by departman.ad

Order by count(*);

Not :  Departman adına göre grupladı. ???????

_____________________

 

SELECT  departman.ad,count(*) as sayi

FROM uye,departman

WHERE uye.departman_id=departman.id  

Group by departman.ad

Having count(*)>1;  // having sahip olmak

Not : departman adına göre sıraladı 1 kişiden fazla elemana sahip olanları gösterdi.

____________________

 

Maaşı 550 liranın altında olacak,Departmanlara göre üye sayısı  1 den fazla olacak?

 

SELECT  departman.ad,count(*) as sayi

FROM uye,departman

WHERE uye.departman_id=departman.id   and uye.maas < 550

Group by departman.ad

Having count(*)>1  ;

NOt : Bilgi işleme ait bir kişi olduğu için güvenliği gösterir.

____________________

 

Departmanlara göre toplam maaşı 950 liranın üzereinde olanlar?

 

SELECT  departman.ad,sum(maas) as toplammaas

FROM uye,departman

WHERE uye.departman_id=departman.id  

Group by departman.ad

Having sum(maas)>950

___________________

Maaşı 700 liranın üzerinde olan üyeleri, departmanlara göre gruplanınca toplam maaşı 950 nin üzerinde olacak?

 

SELECT  departman.ad,sum(maas) as toplammaas

FROM uye,departman

WHERE uye.departman_id=departman.id and uye.maas >700

Group by departman.ad

Having sum(maas)>950

____________________

 

SELECT  ad,soyad,year(dogumtarihi) as yillar

FROM ogrenci 

Not : Öğrencilerin doğum yıllarını gösterir.

___________________

 

SELECT  year(dogumtarihi) as yillar,count (*) as sayi

FROM ogrenci 

Group by year(dogumtarihi)

Not : Dogum tarihine göre grupladı ve sayılarını gösterdi.

_____________________

 

SELECT  ad,soyad,year(dogumtarihi) ,count(*)

FROM ogrenci 

WHERE year(dogumtarihi)<1990

Group by year(dogumtarihi)

Not : 1990 dan önce doğanları dogum tarihine göre sıraladı ve saydı.

____________________

 

SELECT  year(dogumtarihi) as  yil,count(*) as sayi

FROM ogrenci 

WHERE year(dogumtarihi)<1990

Group by year(dogumtarihi)

Having count(*)>1

Not : 1990 dan önce doğanları dogum tarihine göre sıraladı ve saydı ve 1den büyük üyeleri olanı gösterdi.

____________________

 

SELECT  year(dogumtarihi) as  yil,count(*) as sayi

FROM ogrenci 

WHERE year(dogumtarihi)<1990

Group by year(dogumtarihi)

Having count(*)<2

Order by year(dogumtarihi)desc

Not : 1990 dan önce doğanları dogum tarihine göre sıraladı ve saydı ve 2den küçük üyeleri olanı tersten gösterdi.

___________________

1990 dan önce doğan erkek öğrencileri yıllara göre gruplandırıp , toplam öğrenci sayısı 1 in üzerinde olanları

küçükten büyüğe gösterin.

 

SELECT  year(dogumtarihi) as  yil,count(*) as sayi

FROM ogrenci 

WHERE year(dogumtarihi)<1990 and cinsiyet

Group by year(dogumtarihi)

Having count(*)>1

Order by count(*);

______________________

 

31.03.09 Salı

 

SELECT departman.ad,count(*) as sayi

FROM uye,departman

WHERE uye.departman_id=departman.id

Group by departman.ad;

 

Not : Departmanlardaki elemanları gösteriuyor.

_____________________

 

SELECT distinct(anagrup)    // distinct grupları sıralar fakat aynı gruptan birden çok olanları bir tane gösterir

FROM sayfa1

Örnek; Anagrup1

       Anagrup1                      Bunun Sorgu çıktısı Anagrup1  olur

       Anagrup2                                                      Anagrup2

       Anagrup2                                                      Anagrup3

       Anagrup3

       Anagrup3

 

Not : Anagrup alanını sıralar.

______________________

 

SELECT distinct(anagrup) as gruplar INTO yenitablo  // into bize yeni bir tablo oluşturuyor.

FROM sayfa1

Not : anagrup ları sıralayıp into ile yeni bir tabloya yazar.

_____________________

 

SELECT * INTO birinciogrtim

FROM ogrenci

WHERE okulno like "??1*"

Not : Öğrenci Tablosunda ki tüm alanlarla, Birinci öğretim öğrencilerini yeni bir tabloya yazar.

____________________

 

SELECT okulno,ad,soyad,dogumtarihi INTO birinciogretim

FROM ogrenci

WHERE okulno like "??1*"

Not : Okul no,ad,soyad ve dogumtarihi biligleri ile Birinci öğretim öğrencilerini yeni bir tabloya yazar.

____________________

 

SELECT distinct(year(dogumtarihi)) as yıl

FROM ogrenci

Order by year(dogumtarihi) desc

Not : Doğum yıllarını distinct olarak sıralıyor.

____________________

 

SELECT distinct(bolge.ad)

FROM bolge,il,ilce,ogrenci

WHERE ogrenci.ilce_id=ilce.id and ilce.il_id=il.id and il.bolge_id=bolge.id

 

Not : Bölgeleri distinct ile sıralıyor

____________________

 

SELECT distinct(il.ad)

FROM bolge,il,ilce,ogrenci

WHERE ogrenci.ilce_id=ilce.id and ilce.il_id=il.id and il.bolge_id=bolge.id

Not : İl leri distinct ile sıralıyor.

____________________

 

SELECT il.ad,count(*) as sayi

FROM bolge,il,ilce,ogrenci

WHERE ogrenci.ilce_id=ilce.id and ilce.il_id=il.id and il.bolge_id=bolge.id

 

Not :

_____________________

 

SELECT il.ad,count(*) as sayi into yenitablo

FROM bolge,il,ilce,ogrenci

WHERE ogrenci.ilce_id=ilce.id and ilce.il_id=il.id and il.bolge_id=bolge.id

group by il.ad

Not : İl lerden kaç öğrenci geldiğini sayıyor ve ileri sıralıyor yeni tabloya yazıyor.

 

_____________________

 

SELECT il.ad,count(*) as sayi

FROM bolge,il,ilce,ogrenci

WHERE ogrenci.ilce_id=ilce.id and ilce.il_id=il.id and il.bolge_id=bolge.id

group by il.ad

having count(*) > 1

Not : İl lerden kaç öğrenci geldiğini sayıyor ve ileri sıralıyor ve sayısı 1 den fazla olanları gösteriyor.

___________________

 

SELECT il.ad,count(*) as sayi

FROM bolge,il,ilce,ogrenci

WHERE ogrenci.ilce_id=ilce.id and ilce.il_id=il.id and il.bolge_id=bolge.id

group by il.ad

having count(*) >1

order by count(*) desc

Not : İl lerden kaç öğrenci geldiğini sayıyor ve ileri sıralıyor ve sayısı 1 den fazla olanları gösteriyor

ve  z-a ya göre sıralıyor.

____________________