Şimdi derste kullandığımız bir örneğin benzerini kullanarak örnek çözümler yapalım. Önce veri tabanımızı aşağıdaki kod ile şu web sayfasında oluşturuyoruz: https://app.quickdatabasediagrams.com/#/
# Modify this code to update the DB schema diagram.
# To reset the sample schema, replace everything with
# two dots ('..' - without quotes).
Customer
-
CustomerNr PK int
FamName string
Name string
Street string
Postcode string
City string
Telephone string
Status string
Produkt
-
Pnr PK int
DisplayName string
#CustomerNr int FK -< Customer.CustomerID
Exists int
SalePrice float(6,2)
DateChangeSalePrice date
InvoiceItem
----
InvoiceNr int FK >- Invoice.InvoiceNR
Pnr int FK >- Produkt.Pnr
Quantity int
ItemPrice float(6,2)
Invoice
----
InvoiceNR PK int
CustomerNr int FK >- Customer.CustomerNr
AuftragNr int
Date date
Amount float(6,2)
Debit
----
DNr int PK
CustomerNr int Fk >- Customer.CustomerNr
InvoiceNR int fk - Invoice.InvoiceNR
Date date
Amount float(6,2)
Credit
----
CrNr int PK
CustomerNr int Fk >- Customer.CustomerNr
Date date
Amount float(6,2)
Ve böylece aşağıda ki gibi yapılanmış bir veri tabanımız olacaktır.
Soru 1: Credit tablosunun tüm içeriğini gösteren komutu girin.
Cevap : Select * from Credit;
Soru 2: Invoice tablosunda kaç değer bulunduğunu girin.
Cevap : SELECT Count(*) FROM Invoice;
Soru 3 : Ortalama fatura miktarını girin.
Cevap : SELECT Avg(Amount) as “Ortalama” FROM Invoice;
Soru 4: Toplam satış miktarını Toplam sütunu olarak çıkartın.
Cevap: SELECT Sum(Amount) as “Toplam” FROM Invoice;
Soru 5: Kredi Numarası 232 olan hesabın miktarını 50€ artırın.
Cevap: Update Credit SET Amount = Amount +50 WHERE CrNr=232;
Soru 6: Invoice tabelasına veri girin.
Cevap: INSERT INTO Invoice VALUES (1234,2552,4313,”09-12-2019″,59);
Soru 7: Postakodu 34 ile başlayan tüm müşterileri artan sırayla listeleyin ve MüşteriNosu, Adı, Posta kodu ve şehrini gösterin.
Cevap: SELECT CustomerNr, Name, Postcode,City FROM Customer WHERE Postcode LIKE “34*” ORDER BY name ASC;
Soru 8: 18015 Nolu ürünü en az 1 defa almış olan tüm müşterileri gösterin.
Cevap: SELECT CustomerNR FROM Invoice,InvoiceItem WHERE Invoice.InvoiceNR= InvoiceItem.InvoiceItem AND InvoiceItem.Pnr=18015;
Soru 9: 2016 yılında toplam alışveriş miktarı 10.000€ üzerinde olan tüm müşterilerin müşteri numarası ve müşteri adını gösterin.
Cevap: SELECT Customer.CustomerNr, Customer.Name,Sum(Amount) AS “Toplam” FROM Customer,Invoice WHERE Customer.CustomerNr = Invoice.CustomerNr AND Sum(Amount) > 10000 AND Datum >= “2016-01-01″ AND Datum<=”2016-12-31” Group by Customer.CustomerNr;
Soru 10: En yüksek ödemeyi yapan müşterinin numarası,adı, InvoiceNumarası,gün ve miktar bilgilerini gösterin.
Cevap : SELECT CustomerNr,Name,InvoiceNr,Date,Amount WHERE Customer.CustomerNr =Invoice.CustomerNr AND Amout=(SELECT max(amount) from Invoice);
Soru 11: 2016 yılının Invoice başına ortalama satış miktarını bulun.
Cevap-1: SELECT avg(Amount) FROM Invoice WHERE Date >=”2016-01-01″ AND Date<=”2016-12-31″
Cevap-2: SELECT avg(Amount) FROM Invoice WHERE year(Date)=2016;
Soru 12: her şehirdeki müşteri sayısını listeleyin,
Cevap: SELECT City,Count(*) AS “MusteriSayisi” FROM Customer GROUP BY City;
Soru13: Soru 12 de Müşteri sayısı 50 den fazla olan şehirleri listeleyin.
Cevap: SELECT City,Count(*) AS “MusteriSayisi” FROM Customer GROUP BY City HAVING MusteriSayisi > 50;
Alias as”bir isim” kullanıldığı zaman HAVING kullanılıyor.