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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir