Veritabanı Dersi Sql Yazılı Sınav Soru ve Cevapları

1-Siparis ve Personel tablolarını SQL ile oluşturunuz?

CREATE TABLE Siparis (
U_kodu integer,
Personel_kodu integer,
Musteri_Adi Char (40),
S_Adedi integer,
S_Tarih Date,
Bolge Char(20),
CONSTRAINT Ukod FOREIGN KEY (U_kodu) REFERENCES Urun (Ukodu), 
CONSTRAINT Pkod FOREIGN KEY (Personel_kodu) REFERENCES Personel (P_kodu) )
CREATE TABLE Personel (
P_kodu İNTEGER CONSTRAINT Pkodu PRIMARY KEY,
Personel_Adi CHAR (40),
Cinsi CHAR(5),
Yas İNTEGER,
Maas MONEY,
Prim Char(3))

2-Bakırköy ve Kadıköy bölgelerinde mutfak robotu satan ve prim almayan personelin maaşını %20 arttıran bir sorgu yazınız

UPDATE Personel
SET maas= maaas+maas*.20
WHERE P_kodu IN( SELECT Personel_kodu
FROM Siparis AS s, Urun AS u
WHERE U.Ukodu=s.U_kodu AND U_ismi=" Mutfak Robotu"
AND (s.Bolge="Bakırkoy" OR s.Bolge="Kadıköy") );

3-Bakırköy bölgesinde çalışan kadın personeli tablodan silen bir sorgu yazınız.

DELETE FROM Personel
WHERE P_kodu IN (SELECT Personel_kodu 
FROM Siparis 
WHERE bolge="Bakırkoy") AND cinsi="Kadın"

4-Hangi personelin hangi ürünü sattığını çapraz tablo şeklinde veren bir sorgu yapınız. (çapraz tabloda personel ismi ve ürün ismi bulunacaktır.

TRANSFORM  Count(P.U_ismi) AS Toplam
SELECT p.personel_adi, Count(P.U_ismi) AS Say
FROM Personel AS P, Siparis As S, Urun AS U
WHERE P.p_kodu=S.personel_kodu AND S.U_kodu=U.Ukodu
GROUP BY p.personel_adi
PİVOT  P.U_ismi

5-Saç kurutma makinesi ve Elektrik süpürgesi satan personelin ismini ve cinsiyetini bölgeye göre artan sırada listeleyen bir sorgu yapınız.

SELECT p.personel_adi, p.Cinsi
FROM Personel AS P, Siparis As S, Urun AS U
WHERE P.p_kodu=S.personel_kodu AND S.U_kodu=U.Ukodu 
AND (U.U_ismi="Saç Kurutma Makinesi" OR U.U_ismi="Elektrik Süpürgesi")
ORDER BY U.Bolge

6-Mayıs ayı içinde saç kurutma makinesi satan personelin İsmini, Cinsiyetini ve Hangi bölgede çalıştığını listeleyen bir sorguyu INNER JOIN ile yazınız.

SELECT p.personel_adi, p.Cinsi, S.Bolge
FROM Personel AS P 
INNER JOIN (Siparis As S 
INNER JOIN Urun AS U 
ON S.U_kodu=U.Ukodu) 
ON P.p_kodu=S.personel_kodu
WHERE U.U_ismi="Saç Kurutma Makinesi" AND MONTH(S.S_Tarih)=5
ORDER BY U.Bolge

7-Bölgeler bazında maaş ortalamasından maaşları fazla olan personelin personel kodu, adı, maaşı ve Bölgesini Bölgelere göre artan sırada listeleyen bir sorguyu INNER JOIN ve HAVING kullanarak yazınız.

SELECT p.maas, S.Bolge
FROM Personel AS P 
INNER JOIN  (Siparis As S 
INNER JOIN Bolge As B ON S.Bolge=B.Bolge)
ON P.p_kodu=S.personel_kodu
WHERE P.maas>B.ORT 
ORDER BY S.bolge 
SELECT Bolge, AVG(maas) INTO BOLGE
FROM Personel AS P, Siparis As S
WHERE P.p_kodu=S.personel_kodu 

8-Sipariş tablosunda s_adedi ortalamasının güven sınırları dışında kalan satış miktarlarını ve bu satışı yapan personel isimlerini veren bir sorgu yapınız (güven aralığı : [ ] ) t=1.96

SELECT p.personel_adi, S.Adedi
FROM Personel AS P 
INNER JOIN Siparis As S 
ON P.p_kodu=S.personel_kodu
WHERE S.S_adedi< ( SELECT AVG(S_adedi)-1.96*(STDEV(S_Adedi)^(1/2))
FROM Siparis) OR 
S.S_adedi > ( SELECT AVG(S_adedi)+1.96*(STDEV(S_Adedi)^(1/2))
FROM Siparis)
X

Pin It on Pinterest

X