SELECT SORGUSU ÇALIŞMA SORULARI
1.Öğrenci tablosundaki tüm kayıtları listeleyin.
1
|
select * from ogrenci
|
2.Öğrenci tablosundaki öğrencinin adını ve soyadını ve sınıfını listeleyin.
1
|
select ograd,ogrsoyad,sinif from ogrenci
|
3. Öğrenci tablosundaki cinsiyeti kız (K) olan kayıtları listeleyiniz.
1
|
select * from ogrenci where cinsiyet='K'
|
4.Öğrenciler tablosundaki sınıfların adını her sınıf bir kez görülecek şekilde listeleyiniz.
1
|
select distinct sinif from ogrenci
|
5.Öğrenci tablosundaki cinsiyeti Kız ve Sınıfı 10A olan öğrencileri listeleyiniz.
1
|
select * from ogrenci where cinsiyet='K' and sinif='10A'
|
6.Öğrenci tablosundaki 10A veya 10B sınıfındaki öğrencilerin adını, soyadını ve sınıfını listeleyiniz.
1
2
|
select ograd, ogrsoyad, sinif from ogrenci
where sinif='10A' or sinif='10B'
|
7.Öğrenci tablosundaki öğrencinin adını, soyadını ve numarasını okul numarası olarak listeleyiniz. (as kullanım örneği)
1
|
select ograd,ogrsoyad,ogrno as 'okul numarası' from ogrenci
|
8. Öğrenci tablosundaki öğrencinin adını ve soyadını birleştirip, adsoyad olarak listeleyiniz. (as kullanım örneği)
1
|
select ograd+ogrsoyad as 'Ad Soyad' from ogrenci
|
9. Öğrenci tablosundaki Adı ‘A’ harfi ile başlayan öğrencileri listeleyiniz.
1
|
select * from ogrenci where ograd like 'A%'
|
10.kitap tablosundaki sayfa sayısı 50 ile 200 arasında olan kitapların adını ve sayfa sayısını listeleyiniz.
1
|
select * from kitap where sayfasayisi between 50 and 200
|
11. Öğrenci tablosunda adı Fidan, İsmail ve Leyla olan öğrencileri listeleyiniz.
1
|
select * from ogrenci where ograd in ('Fidan','İsmail','Leyla')
|
12. Öğrenci tablosundaki öğrencilerden adı A, D ve K ile başlayan öğrencileri listeleyiniz.
1
|
select * from ogrenci where ograd like '[ADK]%'
|
13. Öğrenci tablosundaki sınıfı 9A olan Erkekleri veya sınıfı 9B olan kızların adını, soyadını, sınıfını ve cinsiyetini listeleyiniz.
1
2
|
select ograd,ogrsoyad,sinif,cinsiyet from ogrenci
where (sinif='9A' and cinsiyet='E') or (sinif='9B' and cinsiyet='K')
|
14. Sınıfı 10A veya 10B olan erkekleri listeleyiniz.
1
2
|
select ograd,ogrsoyad,sinif,cinsiyet from ogrenci
where (sinif='10A' or sinif='10B') and cinsiyet='E'
|
15.Öğrenci tablosunda doğum yılı 1989 olan öğrencileri listeleyiniz.
1
2
|
select * from ogrenci
where dtarih between '01/01/1989' and '12/31/1989'
|
16.Öğrenci numarası 30 ile 50 arasında olan Kız öğrencileri listeleyiniz.
1
2
|
select * from ogrenci
where ogrno between 30 and 70 and cinsiyet = 'K'
|
17.Öğrencileri adına göre sıralayınız.
1
|
select * from ogrenci order by ograd
|
18. Öğrencileri adına, adı aynı olanlarıda soyadlarına göre sıralayınız.
1
|
select * from ogrenci order by ograd,ogrsoyad
|
19. 10A sınıfındaki öğrencileri okul numarasına göre azalan olarak sıralayınız.
1
|
select * from ogrenci where sinif='10A' order by ogrno desc
|
20. Öğrenciler tablosundaki ilk 10 kaydı listeleyiniz.
1
|
select top 10 * from ogrenci
|
21. Öğrenciler tablosundaki ilk 10 kaydın ad, soyad ve doğum tarihi bilgilerini listeleyiniz.
1
|
select top 10 ograd,ogrsoyad,dtarih from ogrenci
|
22.Sayfa sayısı en fazla olan kitabı listeleyiniz.
1
|
select top 1 * from kitap order by sayfasayisi desc
|
23. Öğrenciler tablosundaki en genç öğrenciyi listeleyiniz.
1
|
select top 1 ograd,ogrsoyad,dtarih from ogrenci order by dtarih desc
|
24. 10A sınıfındaki en yaşlı öğrenciyi listeyin.
1
2
|
select top 1 ograd,ogrsoyad,dtarih from ogrenci
where sinif='10A' order by dtarih
|
25. İkinci harfi N olan kitapları listeleyiniz.
1
2
|
select * from kitap
where kitapadi like '_n%'
|
26. Öğrencileri sınıflarına göre gruplayarak listeleyin.
1
|
select * from ogrenci order by sinif
|
27. Öğrencileri her sorgulamada sıralaması farklı olacak şekilde rastgele listeleyin.
1
|
select * from ogrenci order by newid()
|
28. Ogrenci tablosundan Rastgele bir öğrenci seçiniz.
1
|
select top 1 * from ogrenci order by newid()
|
29. 10A sınıfından rastgele bir öğrencinin adını, soyadını, numarasını ve sınıfını getirin.
1
2
3
|
select top 1 ogrno,ograd,ogrsoyad,sinif from ogrenci
where sinif= '10A'
order by newid()
|
INSERT INTO ÇALIŞMA SORULARI
30. Yazar tablosunu KEMAL UYUMAZ isimli yazarı ekleyin.
1
|
insert into yazar(yazarad,yazarsoyad) values('Kemal','UYUMAZ')
|
31. Biyografi türünü tür tablosuna ekleyiniz.
1
|
insert into tur values('Biyografi')
|
32. 10A sınıfı olan ÇAĞLAR ÜZÜMCÜ isimli erkek, sınıfı 9B olan LEYLA ALAGÖZ isimli kız ve sınıfı 11C olan Ayşe Bektaş isimli kız öğrencileri tek sorguda ekleyin.
1
2
|
insert into ogrenci(ograd,ogrsoyad,sinif,cinsiyet)
values('Çağlar','Üzümcü','10A','E'),('Leyla','Alagöz','9B','K'),('Ayşe','Bektaş','11C','K')
|
33. Öğrenci tablosundaki rastgele bir öğrenciyi yazarlar tablosuna yazar olarak ekleyiniz.
1
2
3
|
insert into yazar(yazarad, yazarsoyad)
select top 1 ograd,ogrsoyad from ogrenci
order by newid()
|
34.Öğrenci numarası 10 ile 30 arasındaki öğrencileri yazar olarak ekleyiniz.
1
2
|
insert into yazar(yazarad, yazarsoyad)
select ograd,ogrsoyad from ogrenci where ogrno between 10 and 30
|
35. Nurettin Belek isimli yazarı ekleyip yazar numarasını yazdırınız.(Not: Otomatik arttırmada son arttırılan değer @@IDENTITY değişkeni içinde tutulur.)
1
2
3
|
insert into yazar(yazarad, yazarsoyad)
values('Nurettin','Belek')
select @@IDENTITY
|
UPDATE ÇALIŞMA SORULARI
36. 10B sınıfındaki öğrenci numarası 3 olan öğrenciyi 10C sınıfına geçirin.
1
|
update ogrenci set sinif='10C' where ogrno=3
|
–sorguyu görüntülemek için yazıldı
1
|
select * from ogrenci where ogrno=3
|
37. 9A sınıfındaki tüm öğrencileri 10A sınıfına aktarın
1
|
update ogrenci set sinif='10A' where sinif='9A'
|
–sorguyu görüntülemek için yazıldı
1
|
select * from ogrenci where sinif='10A'
|
38. Tüm öğrencilerin puanını 5 puan arttırın.
1
|
update ogrenci set puan=puan+5
|
DELETE SORGUSU ÇALIŞMA SORULARI
NOT 1: DELETE sorgusunda dikkat edilmesi gereken en önemli husus şart kısmıdır. şart yazılmazsa silme işlemine tüm kayıtlar dahil edilir.
NOT 2: TRUNCATE TABLE komutu sorgu örneklerinin sonunda verilecektir.(Tabloyu boşaltmak için kullanılır. TRUNCATE TABLE TABLOADI)
39. 25 numaralı yazarı silin.
–Not: veritabanı fk ayarlarında delete,update cascade ayarlandığı için ilişkili tabloları otomatik olarak güncellenecek.
1
|
delete from yazar where yazarno=25
|
SELECT …… IS NULL Komutu
Select sorguları içinde değeri null olan kayıtları ararken alanadı=null olarak arama yapılamaz. Null olan alanları aramak için is null ifadesi kullanılır.40. Doğum tarihi null olan öğrencileri listeleyin. (insert sorgusu ile girilen 3 öğrenci listelenecektir)
1
|
select * from ogrenci where dtarih is null
|
BİRDEN ÇOK TABLODAN VERİ ÇEKME ÇALIŞMA SORULARI (JOIN KULLANMADAN)
41. Öğrencinin adını, soyadını ve kitap aldığı tarihleri listeleyin.
1
2
|
select ograd,ogrsoyad,atarih from ogrenci,islem
where ogrenci.ogrno=islem.ogrno
|
42. Fıkra ve hikaye türündeki kitapların adını ve türünü listeleyin.
1
2
3
|
select kitap.kitapadi, tur.turadi from kitap,tur
where kitap.turno=tur.turno
and tur.turadi in ('Hikaye','Fıkra')
|
43. 10B veya 10C sınıfındaki öğrencilerin numarasını, adını, soyadını ve okuduğu kitapları listeleyin.
1
2
3
4
5
|
select ogrenci.ogrno,ograd,ogrsoyad,kitapadi
from ogrenci,islem,kitap
where (sinif='10B' or sinif='10C')
and ogrenci.ogrno=islem.ogrno
and islem.kitapno=kitap.kitapno
|
44. Roman türündeki kitapları okuyan öğrencilerin numarasını, adını, soyadını ve okuduğu kitabın adını listeleyin
1
2
3
4
5
6
|
select distinct ogrenci.ogrno,ograd,ogrsoyad,kitapadi
from ogrenci,islem,kitap,tur
where ogrenci.ogrno=islem.ogrno
and islem.kitapno=kitap.kitapno
and kitap.turno=tur.turno
and tur.turadi='Roman'
|
SQL JOIN ( INNER JOIN ) KULLANIMI ÇALIŞMA SORULARI
45. Öğrencinin adını, soyadını ve kitap aldığı tarihleri listeleyin.
1
2
|
select ograd,ogrsoyad,islem.atarih from ogrenci
join islem on islem.ogrno=ogrenci.ogrno
|
46. Fıkra ve hikaye türündeki kitapların adını ve türünü listeleyin.
1
2
3
|
select kitapadi,turadi from kitap
join tur on kitap.turno=tur.turno
and tur.turadi in('Hikaye','Fıkra')
|
1
2
3
|
select kitapadi,turadi from kitap
join tur on kitap.turno=tur.turno
where tur.turadi in('Hikaye','Fıkra')
|
47. 10B veya 10C sınıfındaki öğrencilerin numarasını, adını, soyadını ve okuduğu kitapları, öğrenci adına göre listeleyin.
1
2
3
4
5
6
|
select ogrenci.ogrno,ograd,ogrsoyad,sinif,kitapadi
from ogrenci
join islem on ogrenci.ogrno=islem.ogrno
join kitap on islem.kitapno=kitap.kitapno
where sinif='10B' or sinif='10C'
order by ogrenci.ograd
|
SQL LEFT JOIN Kullanımı ÇALIŞMA SORULARI
48. Kitap alan öğrencinin adı, soyadı, kitap aldığı tarih listelensin. Kitap almayan öğrencilerinde listede görünsün.
1
2
|
select ograd,ogrsoyad,islem.islemno from ogrenci
left join islem on islem.ogrno=ogrenci.ogrno
|
49. Kitap almayan öğrencileri listeleyin.
1
2
3
|
select ograd,ogrsoyad,islem.atarih from ogrenci
left join islem on islem.ogrno=ogrenci.ogrno
where islem.atarih is null
|
50. Alınan kitapların kitap numarasını, adını ve kaç defa alındığını kitap numaralarına göre artan sırada listeleyiniz.
1
2
3
4
5
|
select kitap.kitapno, kitap.kitapadi,count(*) from islem
left join kitap
on kitap.kitapno=islem.kitapno
group by kitap.kitapadi,kitap.kitapno
order by kitap.kitapno
|
51. Alınan kitapların kitap numarasını, adını kaç defa alındığını (alınmayan kitapların yanında 0 olsun) listeleyin.
1
2
3
4
|
select kitap.kitapno, kitap.kitapadi,count(islem.islemno) as adet from kitap
left join islem on kitap.kitapno=islem.kitapno
group by kitap.kitapadi,kitap.kitapno,islem.kitapno
order by adet
|
52. Öğrencilerin adı soyadı ve aldıkları kitabın adı listelensin.
1
2
3
|
Select * from ogrenci
left join islem on islem.ogrno=ogrenci.ogrno
left join kitap on islem.kitapno=kitap.kitapno
|
SQL LEFT JOIN ve RIGHT JOIN Kullanımı ÇALIŞMA SORULARI
53.Her öğrencinin adı, soyadı, kitabın adı, yazarın adı soyad ve kitabın türünü ve kitabın alındığı tarihi listeleyiniz. Kitap almayan öğrenciler de listede görünsün.
1
2
3
4
5
|
Select ograd,ogrsoyad yazarad,yazarsoyad,kitapadi,turadi from kitap
join tur on tur.turno=kitap.turno
join yazar on kitap.turno=yazar.yazarno
join islem on kitap.kitapno=islem.kitapno
right join ogrenci on ogrenci.ogrno=islem.ogrno
|
54.Her öğrencinin adı, soyadı, kitabın adı, yazarın adı soyad ve kitabın türünü ve kitabın alındığı tarihi listeleyiniz. Kitap almayan öğrenciler de listede görünsün.( Farklı Çözüm)
1
2
3
4
5
|
Select ograd,ogrsoyad yazarad,yazarsoyad,kitapadi,turadi from islem
join kitap on islem.kitapno=kitap.turno
right join ogrenci on ogrenci.ogrno=islem.ogrno
left join tur on kitap.turno=tur.turno
left join yazar on yazar.yazarno=kitap.yazarno
|
55. 10A veya 10B sınıfındaki öğrencilerin adı soyadı ve okuduğu kitap sayısını getirin.
1
2
3
4
5
|
select sinif, ograd,ogrsoyad,count(islemno) from ogrenci
left join islem on islem.ogrno=ogrenci.ogrno
where sinif in ('10A','10B')
group by sinif,ograd,ogrsoyad
order by count(*)
|
İÇ İÇE SELECT SORGULARI ÇALIŞMA SORULARI
56.En fazla sayfa sayılı kitabın bilgilerini listeleyiniz.Yöntem 1
1
|
select top 1 * from kitap order by sayfasayisi desc
|
Yöntem 2( İç içe select ile)
1
|
select * from kitap where sayfasayisi in (select max(sayfasayisi) from kitap)
|
57. Sayfa sayısı ortalama sayfa sayısından fazla olan kitapları listeleyiniz.
1
|
select * from kitap where sayfasayisi >(select avg(sayfasayisi) from kitap)
|
58.İç içe select ile dram türündeki kitapları listeleyiniz.
1
|
select * from kitap where kitap.kitapno=(select (kitap.kitapno) from tur where turadi='dram')
|
59.Adı e harfi ile başlayan yazarların kitapları
1
|
select * from kitap where kitap.yazarno in (select yazar.yazarno from yazar where yazarad like 'e%')
|
60.İç içe sorgu ile kitap okumayan öğrencileri listeleyiniz.
1
|
select * from ogrenci where ogrenci.ogrno not in ( select distinct islem.ogrno from islem)
|
61. İç içe select ile okunmayan kitapları listeleyiniz.
1
|
select * from kitap where kitap.kitapno not in (select distinct islem.kitapno from islem)
|
62. Mayıs ayında okunmayan kitapları listeleyin.
1
|
select * from kitap where kitap.kitapno not in (select distinct islem.kitapno from islem where MONTH(islem.atarih)=5)
|
SQL AVG Kullanımı ÇALIŞMA SORULARI
AVG fonksiyonu ortalama değeri döndürür.63. Tüm kitapların ortalama sayfa sayısını bulunuz.
1
|
select avg(sayfasayisi) as [ortalama sayfa] from kitap
|
64.Sayfa sayısı ortalama sayfanın üzerindeki kitapları listeleyin.
1
2
|
select kitapadi,sayfasayisi from kitap
where sayfasayisi>(select avg(sayfasayisi) from kitap)
|
SQL COUNT Kullanımı ÇALIŞMA SORULARI
COUNT fonksiyonu , belirtilen ölçütlerle eşleşen satır sayısını döndürür.65.Öğrenci tablosundaki öğrenci sayısını gösterin
1
|
select count(*) from ogrenci
|
66.Öğrenci tablosundaki toplam öğrenci sayısını toplam sayı takma(alias kullanımı) adı ile listeleyin.
1
|
select count(*) as ogrenciSayisi from ogrenci
|
67.Öğrenci tablosunda kaç farklı isimde öğrenci olduğunu listeleyiniz.
1
|
select count(distinct ograd) from ogrenci
|
SQL MAX Kullanımı ÇALIŞMA SORULARI
MAX fonksiyonu belirtilen ölçülerle eşleşen en yüksek kayıtı getirir.68.En fazla sayfa sayısı olan kitabın sayfa sayısını listeleyiniz.
1
|
select max(sayfasayisi) as 'En Fazla Sayfa' from kitap
|
69.En fazla sayfası olan kitabın adını ve sayfa sayısını listeleyiniz.
1
2
|
select kitapadi,sayfasayisi from kitap
where sayfasayisi= (select max(sayfasayisi) from kitap)
|
SQL MIN Kullanımı ÇALIŞMA SORULARI
MIN fonksiyonu belirtilen ölçülerle eşleşen en yüksek kayıtı getirir.70.En az sayfa sayısı olan kitabın sayfa sayısını listeleyiniz.
1
|
select min(sayfasayisi) as 'En Fazla Sayfa' from kitap
|
71.En az sayfası olan kitabın adını ve sayfa sayısını listeleyiniz.
1
2
|
select kitapadi,sayfasayisi from kitap
where sayfasayisi= (select min(sayfasayisi) from kitap)
|
72.Dram türündeki en fazla sayfası olan kitabın sayfa sayısını bulunuz.
1
2
|
select max(sayfasayisi) from kitap,tur
where kitap.turno=tur.turno and tur.turadi='dram'
|
73.numarası 15 olan öğrencinin okuduğu toplam sayfa sayısını bulunuz.
1
2
3
4
|
select sum(sayfasayisi) from ogrenci,islem,kitap
where ogrenci.ogrno=islem.ogrno
and islem.kitapno=kitap.kitapno
and ogrenci.ogrno=15
|
SQL DATE / SQL DATEDIFF Kullanımı ÇALIŞMA SORULARI
DATEDIFF :Belirtilen tarihler arasındaki farkı hesaplamak için kullanılır.GETDATE :Şuan ki tarih ve zamanı getirir. MySqlde now() fonksiyonu kullanılır.
1
|
SELECT ograd, ogrsoyad,DATEDIFF(year,dtarih,GETDATE()) from ogrenci
|
SQL GROUP BY Kullanımı ÇALIŞMA SORULARI
75.İsme göre öğrenci sayılarının adedini bulunuz.(Örn: ali 5 tane, ahmet 8 tane )
1
|
select ograd,count(*) from ogrenci group by ograd
|
76.Her sınıftaki öğrenci sayısını bulunuz.
1
|
select sinif, count(*) from ogrenci group by sinif
|
77.Her sınıftaki erkek ve kız öğrenci sayısını bulunuz.
1
|
select sinif, cinsiyet,count(*) from ogrenci group by cinsiyet,sinif
|
78.Her öğrencinin adını, soyadını ve okuduğu toplam sayfa sayısını büyükten küçüğe doğru listeleyiniz.
1
2
3
4
|
select ograd,ogrsoyad,sum(sayfasayisi) as sayfa from ogrenci,kitap,islem
where ogrenci.ogrno=islem.ogrno and kitap.kitapno=islem.kitapno
group by ograd,ogrsoyad,ogrenci.ogrno
order by sayfa
|
79.Her öğrencinin okuduğu kitap sayısını getiriniz.
1
2
3
4
|
select ograd,ogrsoyad,count(*) as kitapsayisi from ogrenci,kitap,islem
where ogrenci.ogrno=islem.ogrno and kitap.kitapno=islem.kitapno
group by ograd,ogrsoyad,ogrenci.ogrno
order by kitapsayisi
|
Hiç yorum yok:
Yorum Gönder