- Published on
SQL Veri Tabani Sorgu Alıştırma Soruları
- Authors
- Name
- Alperen Önal
Sorular Raghu Ramakrishnan'ın kitabından alıntılanmıştır.
(Q1) 103 numaralı tekneyi rezerve eden denizcileri bulun.
select sname from sailors inner join reserves on sailors.sid=reserves.sid where bid=103
(Q2) Kırmızı tekne rezerve eden denizcileri bulun.
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color='red'
(Q3) Lubber tarafından rezerve edilen teknelerin renklerini bulun.
select distinct color from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where sname='lubber'
(Q4) En az bir tekne ayırtmış denizcilerin isimlerini bulunuz.
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid
(Q5) Kırmızı veya yeşil tekne ayırtmış olan denizcilerin isimlerini bulunuz.
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color='red' or color='green'
(Q6) Kırmızı ve yeşil tekne ayırtmış olan denizcilerin isimlerini bulunuz.
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color='red'
intersect
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color='green'
(Q7) En az iki tekne rezerve etmiş olan denizcilerin isimlerini bulunuz.
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid group by sname having 1<COUNT(sname)
(Q8) Yaşı 20’den büyük olan ve kırmızı tekne ayırtmamış olan denizcilerin isimlerini bulunuz.
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color!='red' and age>20
(Q13) Her tekne rezervasyonu için denizci adı,tenke id ve tarihini bulunuz.
select sname,bid,day from sailors inner join reserves on sailors.sid=reserves.sid
(Q16) Kırmızı tekne rezerve eden denizcilerin id’sini bulunuz.
select distinct sailors.sid from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color='red'
Q18) Adı B ile başlayıp B ile biten denizcilerin yaşlarını bulunuz.
select age from sailors where sname like '%b' and sname like 'b%'
(Q19) Kırmızı tekneleri rezerve eden ama yeşil tekneleri rezerve etmeyen denizcilerin id’lerini bulunuz.
select distinct sailors.sid from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color='red'
except
select distinct sailors.sid from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where color='green'
(Q20) Rayting’i 10 olan veya 104 numaralı tekneyi rezerve eden denizcileri bulunuz.
select distinct sailors.sid from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid where rating=10 OR boats.bid=104
(Q22) Rayting’i Horatio isimli denizciden yüksek olan denizcileri bulunuz.
select distinct sname from sailors inner join reserves on sailors.sid=reserves.sid
inner join boats on boats.bid=reserves.bid
where ratin>(select ratin from sailors where sname='Horatio')
(Q24) Ortalamadan yüksek rating’e sahip olan denizcileri bulunuz.
select sname from sailors where ratin>(select AVG(ratin) from sailors)
(Q25) Tüm denizcilerin ortalama yaşlarını bulunuz.
select AVG(age) from sailors
(Q27) En yaşlı denizcinin adını ve yaşını bulunuz.
select age,sname from sailors where age=(select MAX(age) from sailors)
(Q30) Rating’i 10 olan en yaşlı denizciden daha yaşlı olan denizcileri bulunuz.
select sname from sailors where age>(select max(age) from sailors where rating=10)
(Q31) Her rating seviyesi için en genç denizcinin yaşını bulunuz.
select ratin,MIN(age) from sailors group by ratin
(Q33) Her kırmızı teknenin kaç defa rezerve edildiğini bulunuz.
select boats.bid,COUNT(*) from reserves inner join boats on reserves.bid=boats.bid
where color='red' group by boats.bid
(Q34) En az 2 denizcinin bulunduğu her rating için ortalama yaşı bulunuz.
select ratin,AVG(age) from sailors group by ratin
having COUNT(age)>=2