stranger-queries

practice a few SQL queries

ÇALIŞMA-1: Aşağıdaki verilen “satıcı” veritabanını dikkate alarak:

Screenshot

  1. Satıcı veritabanında yer alan çalışanların; adlarının uzunluğu, adlarının soldan ilk iki harfinin ne olduğunu, adının tamamını büyük harfe çeviren ve çalışanın adını tersen yazan SQL ifadesi;
SELECT adi,
LEN(adi) as "uzunluk",
LEFT(adi,2) as "soldan uc harf",
UPPER(adi) as "büyük",
REVERSE(adi) as "tersten"
FROM calisanlar
  1. Satıcı veritabanında yer alan çalışanların maaş ortalamasını hesaplayacak SQL ifadesi;
select avg(maasi) as "ortalama"
from calisanlar
  1. Satıcı veritabanında yer alan ürünler tablosunu dikkate alarak, saticiFirmaID’si 2 olan ürünlerin ortalama birim fiyatını hesaplayacak SQL ifadesi;
select avg(birimFiyat) as "ortalama fiyat"
from urunler
where "saticiFirmaID"=2
  1. Satıcı veritabanında yer alan ürünler tablosunu dikkate alarak, toplam stokMiktarını hesaplayacak SQL ifadesi;
select count(stokMiktari) as "toplam stok miktari"
from urunler
  1. Satıcı veritabanında yer alan ürünler tablosunu dikkate alarak, satıcıFirmaID’si 3 olan bitkilerin toplam stokMiktarını hesaplayacak SQL ifadesi;
select count(stokMiktari) as "saticiID 3 olan bitkiler"
from urunler
where "saticiFirmaID"=3
  1. Ürünlerin birimFiyat’larını göz önünde bulundurduğumuzda, en düşük ve en yüksek birimFiyat’ın ne olduğunu listeleyen SQL ifadesi;
select MIN(birimFiyat) as "en dusuk fiyat", MAX(birimFiyat) as "en yuksek fiyat"
from urunler
  1. En düşük stok miktarına sahip ürünün hangisi olduğunu bulan SQL ifadesi;
select urunAd
from urunler
where stokMiktari=(select MIN(stokMiktari) from urunler)
  1. Satıcı veritabanında yer alan ürünler tablosunu dikkate alarak, saticiFirmaID’si 1 olan firmanın kaç çeşit ürün tedarik ettiğini bulan SQL ifadesi;
select COUNT(urunAd) as "urun cesit sayisi"
from urunler
where "saticiFirmaID"=1

ÇALIŞMA-2: Aşağıdaki verilen “dukkan” veritabanına ait tabloları dikkate alarak:

Screenshot

  1. Ürünler tablosunda ürün numarası 3200 olan ürünün listefiyatı ve adını bulan SQL ifadesi;
select urunAd,listeFiyat
from tblUrun
where "urunKod"=3200
  1. Ürün listefiyatı 150 TL ile 1000 TL arasında olan ürünlerin adı ve bayifiyatlarını bulan SQL ifadesi;
select urunAd,bayiFiyat
from tblUrun
where listeFiyat between 150 and 1000
  1. Ürün listefiyatı 150 TL ile 1000 TL arasında olan ürünlerin sayısını bulan SQL ifadesi;
select COUNT(urunKod) as "150 ile 1000 tl arasindaki urunlerin sayisi"
from tblUrun
where listeFiyat between 150 and 1000
  1. Ürün kodu 3200, 3210, 3150 ve 3400 olan ürünlerin ürünad, listefiyat ve bayifiyatlarını bulan SQL ifadesi;
select urunKod,urunAd,listeFiyat,bayiFiyat
from tblUrun
where urunKod in (3200,3210,3150,3400)
  1. Ürün listefiyatı 150 TL ile 1000 TL arasında olan ürünleri, ürün adlarına göre büyükten küçüğe doğru sıralayan SQL ifadesi;
select urunAd 
from tblUrun
where listeFiyat between 150 and 1000
order by urunAd desc
  1. Ürün listefiyatı 150 TL ile 1000 TL arasında olan ürünleri ürün adlarına göre büyükten küçüğe, ürün kodlarına göre küçükten büyüğe doğru sıralayan SQL ifadesi;
select urunAd,urunKod
from tblUrun
where listeFiyat between 150 and 1000
order by urunAd desc, urunKod asc
  1. Ürün adları içerisinde ‘klavye’ kelimesi geçen kayıtları listeleyen SQL ifadesi;
select urunAd as "klavye gecen kelimeler"
from tblUrun
where urunAd like '%klavye%'
  1. Ürün adı K ile başlayan ürünleri listeleyen SQL ifadesi;
select urunAd as "K harfi ile baslayan urunler"
from tblUrun
where urunAd like 'K%'
  1. Ürün adı K ile biten ürünleri listeleyen SQL ifadesi;
select urunAd as "K harfi ile biten urunler"
from tblUrun
where urunAd like '%K'
  1. Ürün adının ikinci harfi S olan ürünleri listeleyen SQL ifadesi;
select urunAd as "ikinci harfi S olan urunler"
from tblUrun
where urunAd like '_S%'
  1. Ürün adları içerisinde ‘klavye’ kelimesi geçen kayıtları ürün adlarına göre büyükten küçüğe doğru sıralayarak listeleyen SQL ifadesi;
select urunAd as "klavye iceren buyukten kucuge"
from tblUrun
where urunAd like '%klavye%'
order by urunAd desc
  1. Ürün adı K ile başlayan ürünleri ürün adlarına göre büyükten küçüğe doğru sıralayan SQL ifadesi;
select urunAd as "K ile baslayan urunler buyukten kucuge"
from tblUrun
where urunAd like 'K%'
order by urunAd desc
  1. Ürün adı K ile biten ürünleri ürün adlarına göre büyükten küçüğe doğru sıralayan SQL ifadesi;
select urunAd as "K ile bitenler buyukten kucuge"
from tblUrun
where urunAd like '%K'
order by urunAd desc
  1. Ürün adının ikinci harfi S olan ürünleri ürün adlarına göre büyükten küçüğe doğru sıralayan SQL ifadesi;
select urunAd "ikinci harfi s olanlar buyukten kucuge"
from tblUrun
where urunAd like '_S%'
order by urunAd desc
  1. Ürün adının üçüncü harfi A olan ürünleri ürün adlarına göre büyükten küçüğe doğru sıralayan SQL ifadesi;
select urunAd as "ucuncu harfi A olanlar buyukten kucuge"
from tblUrun 
where urunAd like '__A%'
order by urunAd desc
  1. Ürünlerin listefiyatları toplamını bulan SQL ifadesi;
select sum(listeFiyat) as "urunlerin liste fiyatları toplami"
from tblUrun
  1. Stokta yer alan ürünlerden birer tane bulunduğunu varsayarak, stokta toplam kaç liralık ürün olduğunu hesaplayan SQL ifadesi;

  1. Stokta yer alan ürünlerden birer tane bulunduğunu varsayarak, bu ürünlerin hepsinin satılması durumunda ne kadarlık kar elde edilebilir hesaplayan SQL ifadesi;

  1. Ortalama listefiyatı ve bayifiyatını bulan SQL ifadesi;
select avg(listeFiyat) as "ortalama liste fiyat", avg(bayiFiyat) as "ortalama bayi fiyat"
from tblUrun
  1. Listefiyatı en düşük olan ürünün ürünadı ve barkodunu bulan SQL ifadesi;
select urunAd,Barkod
from tblUrun
where listeFiyat=(select min(listeFiyat) from tblUrun)
  1. Listefiyatı en yüksek olan ürünün ürünadı ve barkodunu bulan SQL ifadesi;
select urunAd,Barkod
from tblUrun
where listeFiyat=(select max(listeFiyat) from tblUrun)
  1. Ürünler tablosunda toplam kaç kayıt olduğunu bulan SQL ifadesi;
select count(urunKod) as "toplam urun sayisi"
from tblUrun
  1. Ürün adının ikinci harfi A olan ürünlerden kaç adet olduğunu bulan SQL ifadesi;
select count(urunAd) as "ikinci harfi A olan urunlerin sayisi"
from tblUrun
where urunAd like '_A%'
  1. Listefiyatlarını bir üst tamsayıya yuvarlayınız ve ürünadları ile birlikte listeleyen SQL ifadesi;
select ceiling(listeFiyat) as "ceiling fiyatlar", urunAd
from tblUrun
  1. Listefiyatlarını bir alt tamsayıya yuvarlayınız ve ürünadları ile birlikte listeleyen SQL ifadesi;
select floor(listeFiyat) as "floor fiyatlar", urunAd
from tblUrun
  1. Listefiyatı en yüksek olan ürünün markasının adını bulan SQL ifadesi;
select tblMarka.Marka
from tblUrun inner join tblMarka on tblUrun.markaKod=tblMarka.markaKod
where tblUrun.listeFiyat=(select max(tblUrun.listeFiyat) from tblUrun)

ÇALIŞMA-3: “Dukkan” veritabanını dikkate alarak: Screenshot

  1. Ürün kodu 3200 olan ürünün markasını bulan SQL ifadesini yazınız.
select M.Marka
from tblUrun U inner join tblMarka M on U.markaKod=M.markaKod
where U.urunKod=3200
  1. Ürün kodu 3200 olan ürünün markası ve döviz adını bulan SQL ifadesi;
select M.Marka,D.dovizAd
from tblUrun U
inner join tblMarka M
on U.markaKod=M.markaKod
inner join tblDoviz D
on D.dovizKod=U.dovizKod
where U.urunKod=3200
  1. TblSiparis tablosunda fatura kodu 6 olan ürünün adı, markası ve sipariş tarihini ekrana listeleyen SQL ifadesi;
select U.urunAd,M.Marka,S.siparisTarih
from tblSiparis S
inner join tblSiparisDetay SD
on S.faturaKod=SD.faturaKod
inner join tblUrun U
on U.urunKod=SD.urunKod
inner join tblMarka M
on M.markaKod=U.markaKod
  1. Fatura kodu 18 olan siparişi hangi kullanıcının verdiğini bulan SQL ifadesi;
select K.kullaniciAd
from tblSiparis S
inner join tblKullanici K
on S.kullaniciKod=K.kullaniciKod
where S.faturaKod=18
  1. Fatura kodu 18 olan ürünün sipariş durumunu getiren SQL ifadesi;
select SD.aciklama
from tblSiparis S
inner join tblSiparisDurum SD
on S.siparisDurumKod=SD.siparisDurumKod
where S.faturaKod=18
  1. Fatura kodu 18 olan siparişi veren müşterinin mesleğini bulan SQL ifadesi;
select M.meslek
from tblSiparis S
inner join tblKullanici K
on S.kullaniciKod=K.kullaniciKod
inner join tblMeslek M
on K.meslekKod=M.meslekKod
where S.faturaKod=18
  1. Hangi kullanıcının hangi kodlu üründen kaçar adet sipariş verdiğini listeleyen SQL ifadesi;
select K.kullaniciAd,U.urunKod,SD.adet
from tblKullanici K
inner join tblSiparis S
on K.kullaniciKod=S.kullaniciKod
inner join tblSiparisDetay SD
on S.faturaKod=SD.faturaKod
inner join tblUrun U
on SD.urunKod=U.urunKod

ÇALIŞMA-4: “Dukkan” veritabanını dikkate alarak:GROUP BY ÖRNEKLERİ

  1. Ürünler markaKod sütununa göre gruplandırıldığında, her bir markaKod değerine karşılık kaç ürün düşmektedir?
select markaKod,count(urunKod)
from tblUrun
group by markaKod
  1. Liste fiyatı 50 TL’den büyük, 100 TL’den küçük olan ürünlerden kaçar adet olduğunu bulan SQL ifadesi;
select urunAd,count(*) as "adet sayisi"
from tblUrun
where listeFiyat>50 and listeFiyat<100
group by urunAd
  1. Her bir marka grubunda kaç adet ürün bulunduğunu görmek istersek bu sorguyu nasıl oluştururuz?
select M.Marka,COUNT(urunKod) AS "ürün sayısı"
from tblUrun U
inner join tblMarka M
on U.markaKod=M.markaKod
GROUP BY M.Marka
  1. Liste fiyatı 100 TL ile 500 TL arasında olan ürünlerin, markalarına göre ortalama fiyatlarını görmek istiyoruz. Bu sorguyu nasıl oluştururuz?
select M.Marka,AVG(U.listeFiyat) AS "Ortalama Fiyat"
from tblUrun U
inner join tblMarka M
on U.markaKod=M.markaKod
where U.listeFiyat>100 AND U.listeFiyat<500
GROUP BY M.Marka

ÇALIŞMA-5: “Dukkan” veritabanını dikkate alarak:HAVING ÖRNEKLERİ

  1. 30’un üzerinde ürüne sahip markaların adları ve bu markalarda kaçar adet ürün olduğunu bulan SQL ifadesi;
select M.Marka,count(*) as "urun sayisi"
from tblUrun U inner join tblMarka M on U.markaKod=M.markaKod
group by M.Marka
having count(*)>30 
GROUP BY M.Marka
  1. Liste fiyatı 50 TL’den daha pahalı ürünler için her bir marka grubunda ortalama liste fiyatını raporlayın. Sonuçta, 16’dan daha az ürüne sahip markalar yer almasın.
select U.markaKod,M.Marka,avg(U.listeFiyat) as "ortalama liste fiyatı",count(*) as "urun sayisi"
from tblUrun U inner join tblMarka M on U.markaKod=M.markaKod
where listeFiyat>50
group by U.markaKod,M.Marka
having count(*)>16