04/12/2019

SQL – 4 SQL Komutları – Örnek – 1

Ş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.

Leave a Reply