VERİ TABANI (SQL) DERSİ 2.DÖNEM 1.YAZILI SINAVI SORULARI VE CEVAPLARI 2011- 2012
VERİ TABANI (SQL) DERSİ 2.DÖNEM 1.YAZILI SINAVI SORULARI VE CEVAPLARI 2011- 2012
– Soru 1
/*
ort ve sonuç
*/
update Notlar set Sonuc =
CASE
WHEN (Not1 + Not2 + Not3)/3 >= 45 THEN ‘Geçti’
WHEN (Not1 + Not2 + Not3)/3 70
)
– Soru 3
/*
Notlar tablosuna yeni kayıt yapıldığındax
ort ve durum hesapla, alanları doldur.
*/
ALTER TRIGGER KayitdaGerekliHesaplamalariYap
ON Notlar FOR INSERT AS
DECLARE @ort INT
SELECT @ort = (Not1 + Not2 + Not3)/3 FROM INSERTED
UPDATE Notlar SET
Notlar.Ort = @ort ,
Notlar.Sonuc = CASE
WHEN @ort >= 45 THEN ‘Geçti’
WHEN @ort 45 olanları
soru 4 deki gibi filtrele
*/
SELECT B.Bolumid, B.Bolum, ‘Öğrenci Sayısı’ = COUNT(O.OgrID) FROM
Bolum AS B, OgrenciBilgi AS O, Sinif AS S, Notlar AS N
WHERE(
B.Bolumid = S.Bolum
AND
O.sinif = S.SinifID
AND
N.OgrID = O.OgrID
AND
N.Ort > 45
)
GROUP BY B.Bolumid, B.Bolum
– Soru 6
/*
Bir sınıf silindiğinde
o sınıftaki öğrencilerin notlarını da sil.
*/
ALTER TRIGGER OgrenciSilindigindeNotlaridaSil
ON Sinif FOR DELETE
AS
– Öğrenci idlerini bul!
DELETE Notlar WHERE Notlar.OgrID IN(
SELECT OgrID FROM OgrenciBilgi
WHERE (OgrenciBilgi.sinif = ( SELECT SinifID FROM DELETED ))
)
– soru 7
/*
sınıf ortalamasının altında olan ogr
ad, soyad, sınıf ve ortalama
*/
SELECT O.adi, O.soyadi, AVG(N.Ort) AS ORT, S.Sinif
FROM
Sinif AS S, OgrenciBilgi AS O, Notlar AS N,
Ders AS D, Bolum AS B
WHERE(
O.sinif = S.SinifID
AND
N.OgrID = O.OgrID
AND
S.Bolum = B.Bolumid
AND
N.Ders = D.DersID
)
GROUP BY O.sinif, N.Ort, S.Sinif
HAVING AVG(N.Ort) > N.Ort
– soru 8
/*
En düşük ortalamaya sahip dersin ismini göster
*/
CREATE PROC endusukgoster
AS
SELECT D.DersID, D.Ders
FROM Ders AS D
WHERE D.DersID = (
SELECT TOP 1 N.Ders
FROM Notlar AS N
ORDER BY N.Ort ASC
)
– soru 9
/*
Öğrenciyi silmek yerine aktif 0 yap.
*/
CREATE TRIGGER SilmekYerinePasifYap
ON OgrenciBilgi
INSTEAD OF DELETE
AS
UPDATE OgrenciBilgi SET Aktif = 0
WHERE OgrID = ( SELECT OgrID FROM DELETED )
– soru 10
/*
Yaşı 30 dan küçüklerin bilgilerini listele
*/
SELECT O.okulno, O.adi, O.soyadi, B.Bolum, D.Ders, N.Ort, N.Sonuc
FROM OgrenciBilgi AS O, Notlar AS N, Ders AS D, Sinif AS S, Bolum AS B
WHERE (
DATEDIFF(yy, O.Dogum_tarihi, GETDATE()) < 30
AND
O.OgrID = N.OgrID
AND
O.sinif = S.SinifID
AND
B.Bolumid = S.Bolum
AND
N.Ders = D.DersID
)
Mustafa Kum


