Bu sayfa bir sorgu arama sihirbazıdır. Ayrıca çok sayıda sql sorgu örnekleri içermektedir. Sorgunuzda bulunmasını istediğiniz ifadeleri yukarıdaki arama panelinden işaretleyerek arama yapabilirsiniz. İki türlü arama mevcut isterseniz sadece seçtiğiniz ifadeler yer alır. İsterseniz seçtiğiniz ifadeler mutlaka yer almak üzere diğer sql ifadeleri de sorgunuzda bulunabilir. Sorguların cevapları kütüphane veritabanında çözüldü. Diyagmı sol alt köşeden tıklayarak inceleyebilirsiniz.1600 kitap 500 den fazla yazardan oluşan Tamamen Türkçe kütüphane veritabanını bu linke tıklayarak indirebilirsiniz.

SQL Delete Örnekleri

1-) Parametre olarak girilen üç sayının toplamını bulan stored procedure. Sonuç çıkış parametresine aktarılmıştır.

Çözüm 1)

Create Procedure sumThree
@n1 int,
@n2 int,
@n3 int,
@result int output as
Begin
    Set @result = @n1+@n2+@n3
End
--To Execute The Procedure
Declare @result int 
Execute sumThree 5,30,12,@result output
Select @result


ETİKETLER

Procedure - Declare -
2-) Erkek öğrencileri adına göre sıralı olarak listeleyiniz?

Çözüm 1)

Select * from ogrenci 
       where cinsiyet = 'E' 
       order by ad

Çözüm 2)

Select * from ogrenci 
       where cinsiyet = 'E' 
       order by 2


ETİKETLER

Select - Where - Order By -
3-) Tüm kitapların toplam sayfa sayısını listeleyiniz.

Çözüm 1)

Select sum(sayfasayisi) from kitap


ETİKETLER

Select - Toplam Fonksiyonları -
4-) Sinan Ay isimli öğrencinin okuduğu kitapların toplam sayfa sayısı kaçtır.

Çözüm 1)

Select sum(sayfasayisi) from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
join kitap on kitap.kitapno = islem.kitapno 
where ogrenci.ad = 'Sinan' and ogrenci.soyad = 'Ay'


ETİKETLER

Select - Join - Where - Çoklu Şart - Toplam Fonksiyonları - Çoklu Tablo -
5-) Öğrenci Numarası 1,7,11,17 olan öğrenciler listelensin

Çözüm 1)

select * from ogrenci 
	where ogrno=1 or ogrno=7 or 
		  ogrno=11 or ogrno=17

Çözüm 2)

select * from student 
     where ogrno in (1,7,11,17)


ETİKETLER

Select - Where -
6-) Öğrencilerin Adını ve soyadını birleştirip tek bir kolonda listeleyiniz

Çözüm 1)

Select ad + soyad from ogrenci

Çözüm 2)

Select ad + soyad as ns from ogrenci

Çözüm 3)

Select ad + ' ' + soyad as ns from ogrenci


ETİKETLER

Select - Takma Ad -
7-) Parametre olarak belirtilen sayının yine parametre olarak verilen kuvvetini hesaplayan stored procedure. Sonuç çıkış parametresine aktarılmıştır.

Çözüm 1)

Create Procedure Sp_Kuvvet(@taban int,@us int, @sonuc int output) As
Begin 
	Declare @i int = 0;
	Set @sonuc= 1
	while(@i<@us)
	Begin
		Set @sonuc= @sonuc* @taban
		Set @i += 1
	End
End


ETİKETLER

Procedure - Declare -
8-) Sayfa sayısı sütunun en az değeri kaçtır.

Çözüm 1)

Select min(sayfasayisi) from kitap


ETİKETLER

Select - Toplam Fonksiyonları -
9-) 10E sınıfının erkek öğrencilerinin puanını 5 puan arttıran sorguyu yazınız.

Çözüm 1)

Update ogrenci set puan += 5 where sinif = '10E' and cinsiyet = 'E'


ETİKETLER

Update - Where - Çoklu Şart -
10-) Bütün kitapların puanını 5 puan arttırınız.

Çözüm 1)

Update kitap set puan +=5

Çözüm 2)

Update kitap set puan = puan + 5


ETİKETLER

Update -
11-) Adı Kemal veya Suna olan numarası 30 dan az olan öğrenciler

Çözüm 1)

select * from ogrenci 
	where ("Kemal" or "Suna") and ogrno<30

Çözüm 2)

select * from ogrenci 
	where ad='Kemal' and ogrno<30 or 
	      ad='Suna' and ogrno<30


ETİKETLER

Select - Where - Parantez - Çoklu Şart -
12-) Parametre olarak girilen sayının faktöriyelini hesaplan stored procedure. Sonuç çıkış parametresi olarak geliyor

Çözüm 1)

Create procedure SP_faktoriyel(@sayi int)
as begin
Declare @i int = 1,@sonuc int=1
while (@i<=@sayi )
Begin
	Set @sonuc= @sonuc* @i
	Set @i += 1
End
Select @sonuc
End
--Procedure yi çalıştırmak için
Execute SP_faktoriyel 5
--Sonuç 120


ETİKETLER

Procedure - Declare -
13-) Yazar tablosuna adı Ahmet soyadı Taşkın olan bir yazar ekleyiniz.

Çözüm 1)

Insert into yazar 
       values('Ahmet','Taşkın')

Çözüm 2)

Insert into yazar(ad,soyad) 
       values('Ahmet','Taşkın')


ETİKETLER

Insert -
14-) Öğrenci isimlerini listeleyiniz. Aynı isimler bir kere listelensin

Çözüm 1)

Select distinct ad from ogrenci


ETİKETLER

Select - Distinct -
15-) Her sınıftaki kız ve erkek öğrenci sayılarını listeleyiniz.

Çözüm 1)

Select sinif,cinsiyet,count(*) as OgrenciSayısı
from ogrenci 
group by cinsiyet,sinif


ETİKETLER

Select - Group By - Toplam Fonksiyonları - Takma Ad -
16-) 9B sınıfının toplam puanını listeleyiniz.

Çözüm 1)

Select count(*) from ogrenci 
       where sinif = '9B'


ETİKETLER

Select - Where - Toplam Fonksiyonları -
17-) Adı Bill olan öğrencileri listeleyiniz.

Çözüm 1)

Select * from ogrenci 
       where ad = 'Bill'


ETİKETLER

Select - Where -
18-) Adının baştan ikinci harfi a olan öğrencileri listeleyiniz.

Çözüm 1)

Select * from ogrenci 
        where ad like '_a%'


ETİKETLER

Select - Where - Like -
19-) Adında a harfi geçen yazarları öğrenciler tablosuna ekleyiniz. Sınıfları 12M olsun.

Çözüm 1)

Insert into ogrenci(ad,soyad,sinif) 
	Select ad,soyad,'12M' from yazar where ad like '%a%'


ETİKETLER

Select - Insert - Where -
20-) Adı Sinan olup soyadında a olmayan ogrenciler

Çözüm 1)

select * from ogrenci 
       where ad = 'Sinan' and soyad not like '%a%'

Çözüm 2)

select * from ogrenci 
       where ad = 'Sinan' and not soyad like '%a%'


ETİKETLER

Select - Where - Çoklu Şart -
21-) Parametre ile belirtilen iki sayı arasında yine parametre ile belirtilen sayı kadar birbirinden farklı sayılar listeleyen procedure

Çözüm 1)

Create procedure SP_rasgeleUret(@miktar int,@min int,@max int)
as 
Begin
	Declare @sayilar table(number int)
	Declare @i int = 0
	Declare @sayi int
	while (@i<@miktar)
	Begin
		Set @sayi= floor(rand()*(@max-@min+1))+@min
		if(not exists(Select * from @sayilar where number = @sayi))
		begin
			insert into @sayilar values(@sayi)
			Set @i = @i + 1 
		end
	end
	Select * from @sayilar order by 1
End
--Procedure yi çalıştırmak için
Execute SP_rasgeleUret 5,20,30


ETİKETLER

Select - Insert - Procedure - Declare -
22-) Erkek öğrencileri karışık sıralı olarak listeleyiniz.

Çözüm 1)

Select * from ogrenci 
       where cinsiyet = 'E' 
       order by newid()


ETİKETLER

Select - Where - Order By -
23-) Tüm öğrencilerin adını soyadını ve kitap aldığı tarihi listeleyiniz?

Çözüm 1)

Select ad,soyad,atarih from ogrenci,islem 
       where ogrenci.ogrno = islem.ogrno

Çözüm 2)

Select ad,soyad,atarih from ogrenci 
       join islem on ogrenci.ogrno = islem.ogrno


ETİKETLER

Select - Join - Where - Çoklu Tablo -
24-) Numarası 20 ile 30 arasında olan öğrencilerin sınıfını 10C olarak güncelleyiniz.

Çözüm 1)

Update ogrenci set sinif = '10C' where ogrno between 20 and 30


ETİKETLER

Update - Where - Between -
25-) Kitap okumayan öğrencileri siliniz.

Çözüm 1)

Delete from ogrenci 
where ogrno not in 
	(Select ogrno from islem)


ETİKETLER

Delete - Where - Alt Sorgu -
26-) Adı Serpil olan öğrencileri siliniz.

Çözüm 1)

Delete from ogrenci 
       where ad = 'Serpil'


ETİKETLER

Delete - Where -
27-) Dram türündeki kitapların puanını 1 arttıran sorguyu yazınız.

Çözüm 1)

Update kitap set puan += 1 
       where turno = (Select turno from kitap where ad = 'Dram')

Çözüm 2)

Update kitap set puan += 1 
       where turno in (Select turno from kitap where ad = 'Dram')


ETİKETLER

Update - Where - Alt Sorgu -
28-) 10A sınıfından rasgele 1 öğrenci listeleyiniz?

Çözüm 1)

Select top 1 * from ogrenci 
	where sinif= '10A' 
	order by newid()


ETİKETLER

Select - Top - Where - Order By -
29-) Kitap okumayan öğrencileri listeleyiniz

Çözüm 1)

Select ogrenci.* from ogrenci 
left join islem on ogrenci.ogrno = islem.ogrno 
where islemno is null

Çözüm 2)

Select * from ogrenci 
where ogrno not in 
	(Select ogrno from islem)


ETİKETLER

Select - Where - Alt Sorgu - Çoklu Tablo - Left Join -
30-) Rasgele seçilmiş 3 tane öğrenci listeleyiniz.

Çözüm 1)

Select top 3 * from ogrenci 
       order by newid()


ETİKETLER

Select - Top - Order By -
31-) Ali Al isimli öğrenci kaç farklı yazarın kitabını okumuştur.

Çözüm 1)

Select count(distinct yazarno) from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
join kitap on kitap.kitapno = islem.kitapno 
where ogrenci.ad = 'Ali' and ogrenci.soyad = 'Al'


ETİKETLER

Select - Distinct - Join - Where - Çoklu Şart - Toplam Fonksiyonları - Çoklu Tablo -
32-) Tüm kitapları siliniz.

Çözüm 1)

Delete from kitap


ETİKETLER

Delete -
33-) Sayfa sayısı 50 ile 100 arasında olan kitapları siliniz.

Çözüm 1)

Delete from kitap 
       where sayfasayisi between 50 and 100

Çözüm 2)

Delete from kitap 
       where sayfasayisi<=100 and sayfasayisi>=50


ETİKETLER

Delete - Where -
34-) Öğrencilerin sadece adını, soyadını listeletiniz. Aynı isim soyisimde olanlar bir kere listelensin

Çözüm 1)

Select distinct ad, soyad from ogrenci


ETİKETLER

Select - Distinct -
35-) İki sayının toplamını bulan stored procedure. Sonucu çıkış parametresi olarak veriyor

Çözüm 1)

Create Procedure Topla(@p1 int,@p2 int,@Result int output)
as
Begin
	Set @Result = @p1+ @p2
End
--Procedure yi çalıştırmak için
Declare @r int
Execute Topla20,25,@r output
Select @r as Result


ETİKETLER

Procedure - Declare -
36-) Tüm kitapların sayısını listeleyiniz.

Çözüm 1)

Select count(*) from kitap

Çözüm 2)

Select count(kitapno) from kitap


ETİKETLER

Select - Toplam Fonksiyonları -
37-) Adı a harfi ile biten öğrenciler listelensin?

Çözüm 1)

Select * from ogrenci 
       where ad like '%a'


ETİKETLER

Select - Where - Like -
38-) Sayfa sayısı 300 den fazla olan kitapların adını ve yazar bilgilerini listeleyiniz.

Çözüm 1)

Select kitap.ad as bookName, yazar.ad, yazar.soyad 
from yazar 
join kitap on yazar.yazarno = kitap.yazarno 
where sayfasayisi >300

Çözüm 2)

Select yazar.ad, yazar.soyad, kitap.ad as bookName 
from yazar,kitap
where yazar.yazarno = kitap.yazarno and sayfasayisi >300


ETİKETLER

Select - Join - Where - Çoklu Şart - Çoklu Tablo -
39-) Tüm öğrencilerin toplam puanını listeleyiniz.

Çözüm 1)

Select sum(puan) from ogrenci


ETİKETLER

Select - Toplam Fonksiyonları -
40-) 10A sınıfından Yahya Kemal isimli yazarın kitabını okuyan öğrenciler

Çözüm 1)

Select distinct ogrenci.* from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno
join kitap on kitap.kitapno = islem.kitapno
join yazar on yazar.yazarno = kitap.yazarno  
where yazar.ad = 'Yahya' and yazar.soyad = 'Kemal' and sinif = '10A'

Çözüm 2)

Select distinct ogrenci.* 
from ogrenci, islem, kitap, yazar
where ogrenci.ogrno = islem.ogrno and 
      kitap.kitapno = islem.kitapno and 
	  yazar.yazarno = kitap.yazarno and 
	  yazar.ad = 'Yahya' and yazar.soyad = 'Kemal' and 
	  sinif = '10A'


ETİKETLER

Select - Join - Where - Çoklu Şart - Alt Sorgu - Çoklu Tablo -
41-) Tüm yazarları öğrenci tablosuna ekleyiniz.

Çözüm 1)

Insert into ogrenci(ad,soyad) 
	Select ad,soyad from yazar


ETİKETLER

Select - Insert -
42-) 5 numaralı öğrenciyi siliniz.

Çözüm 1)

Delete from ogrenci 
       where ogrno = 5


ETİKETLER

Delete - Where -
43-) Halit Ziya Uşaklıgil isimli yazarın kitap sayısını listeleyiniz.

Çözüm 1)

Select count(*) from kitap 
join yazar on yazar.yazarno = kitap.yazarno 
where yazar.ad = 'Halit Ziya' and yazar.soyad = 'Uşaklıgil'


ETİKETLER

Select - Join - Where - Çoklu Şart - Toplam Fonksiyonları - Çoklu Tablo -
44-) 10A sınıfının erkek öğrencilerini karışık olarak listeleyiniz

Çözüm 1)

select * from ogrenci 
	where sinif='10A' and cinsiyet='E' 
	order by newid()


ETİKETLER

Select - Where - Order By -
45-) Bütün öğrencilerin puanını 100 olarak güncelleyiniz.

Çözüm 1)

Update ogrenci set puan=100


ETİKETLER

Update -
46-) Adı Ali olan öğrencilerin adını Veli olarak güncelleyiniz.

Çözüm 1)

Update ogrenci set ad='Veli' 
       where ad = 'Ali'


ETİKETLER

Update - Where -
47-) "Dram" türünde kitap yazan yazarların adını, soyadını ve yazdığı kitabın adını listeleyiniz.

Çözüm 1)

Select yazar.ad, yazar.soyad, kitap.ad as bookName from yazar 
join kitap on yazar.yazarno = kitap.yazarno 
join tur on tur.turno = kitap.turno 
where tur.ad = 'Dram'

Çözüm 2)

Select yazar.ad, yazar.soyad, kitap.ad as bookName 
from yazar, kitap, tur
where yazar.yazarno = kitap.yazarno and  
	  tur.turno = kitap.turno and 
	  tur.ad = 'Dram'


ETİKETLER

Select - Join - Where - Çoklu Şart - Çoklu Tablo -
48-) Adının sondan ikinci harfi a olan öğrencileri listeleyiniz.

Çözüm 1)

Select * from ogrenci 
       where ad like '%a_'


ETİKETLER

Select - Where - Like -
49-) Rasgele seçilen 5 öğrenciyi yazarlar tablosuna ekleyiniz.

Çözüm 1)

Insert into yazar(ad,soyad) 
	Select top 5 ad,soyad from ogrenci order by newid()


ETİKETLER

Select - Insert - Top - Order By -
50-) Romance türündeki kitapların toplam sayfa sayısını listeleyiniz.

Çözüm 1)

Select sum(sayfasayisi) from kitap 
join tur on tur.turno = kitap.turno 
where tur.ad = 'Romance'


ETİKETLER

Select - Join - Where - Toplam Fonksiyonları - Çoklu Tablo -
51-) Öğrenci numarası tek olan adı a harfi ile başlayan öğrenciler

Çözüm 1)

Select * from student 
       where ad like 'a%' and ogrno % 2 = 1


ETİKETLER

Select - Where - Çoklu Şart -
52-) Tüm öğrencilerin adını soyadını,aldığı kitabın adını ve kitap aldığı tarihi listeleyiniz?

Çözüm 1)

Select ogrenci.ad,ogrenci.soyad,kitap.ad,atarih 
       from ogrenci,islem,kitap 
       where ogrenci.ogrno = islem.ogrno and 
                  kitap.kitapno = islem.kitapno

Çözüm 2)

Select ogrenci.ad,ogrenci.soyad,kitap.ad,atarih from ogrenci 
       join islem on ogrenci.ogrno = islem.ogrno 
       join kitap on kitap.kitapno = islem.kitapno


ETİKETLER

Select - Join - Where - Çoklu Tablo -
53-) Tüm işlemleri siliniz.

Çözüm 1)

Delete from islem


ETİKETLER

Delete -
54-) Peyami Safa isimli yazarın kitabını okuyan öğrenciler

Çözüm 1)

Select distinct ogrenci.* from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno
join kitap on kitap.kitapno = islem.kitapno
join yazar on yazar.yazarno = kitap.yazarno  
where yazar.ad = 'Peyami' and yazar.soyad = 'Safa'

Çözüm 2)

Select distinct ogrenci.* 
from ogrenci, islem, kitap, yazar
where ogrenci.ogrno = islem.ogrno and 
	  kitap.kitapno = islem.kitapno and 
	  yazar.yazarno = kitap.yazarno and 
	  yazar.ad = 'Peyami' and yazar.soyad = 'Safa'


ETİKETLER

Select - Join - Where - Çoklu Şart - Çoklu Tablo -
55-) Tüm öğrencileri adına göre sıralı olarak listeleyiniz

Çözüm 1)

Select * from ogrenci 
       order by ad

Çözüm 2)

Select * from ogrenci 
       order by 2


ETİKETLER

Select - Order By -
56-) Kemal Tahir isimli yazarın kitaplarının toplam sayfa sayısı kaçtır.

Çözüm 1)

Select sum(sayfasayisi) from kitap 
join yazar on yazar.yazarno = kitap.yazarno 
where yazar.ad = 'Kemal' and yazar.soyad = 'Tahir'


ETİKETLER

Select - Join - Where - Toplam Fonksiyonları - Çoklu Tablo -
57-) Tüm öğrencilerin adını soyadını,aldığı kitabın adını,kitap aldığı tarihi,kitabın türünü ve yazarının adını ve soyadını listeleyiniz?

Çözüm 1)

Select ogrenci.ad as studentName,
	   ogrenci.soyad,kitap.ad as BookName,
	   atarih,tur.ad as TypeName, 
	   yazar.ad as AuthorName, yazar.soyad as AuthorSurad 
from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
join kitap on kitap.kitapno = islem.kitapno
join tur on kitap.turno = tur.turno
join yazar on yazar.yazarno = kitap.yazarno

Çözüm 2)

Select ogrenci.ad as studentName,ogrenci.soyad,
           kitap.ad as BookName,atarih,tur.ad as TypeName ,
           yazar.ad as AuthorName,yazar.soyad as AuthorSurad 
from ogrenci, islem, kitap, tur, yazar 
where ogrenci.ogrno = islem.ogrno and 
           kitap.kitapno = islem.kitapno and 
           kitap.turno = tur.turno and  
           yazar.yazarno = kitap.yazarno


ETİKETLER

Select - Join - Where - Çoklu Tablo -
58-) Öğrencilerin adını soyadını ve okudukları kitap sayısını listeleyiniz. Kitap okumayan öğrencilerde listelensin.(Okuduğu kitap sayısı 0 (sıfır) olarak)

Çözüm 1)

Select ad,soyad,count(islemno) KitapSayısı
from ogrenci
left join islem on ogrenci.ogrno = islem.ogrno 
group by ogrenci.ogrno,ad,soyad
order by BookCount

Çözüm 2)

Select ad, soyad, 
	(Select count(*) from islem 
		where ogrenci.ogrno = islem.ogrno) as KitapSayısı
from ogrenci 
order by KitapSayısı


ETİKETLER

Select - Top - Where - Having - Alt Sorgu -
59-) Adı Sinan soyadı Kaya ve adı Kemal soyadı Kara olan iki yazarı tek seferde yazarlar tablosuna ekleyiniz.

Çözüm 1)

Insert into yazar(ad,soyad) 
	values('Sinan','Kaya'),
		  ('Kemal','Kara')

Çözüm 2)

Insert into yazar 
	values ('Sinan','Kaya'),
		   ('Kemal','Kara')


ETİKETLER

Insert -
60-) Tüm öğrencileri listeleyiniz.

Çözüm 1)

Select * from ogrenci


ETİKETLER

Select -
61-) Öğrencileri önce sınıflarına göre, sınıfları aynı olanları adına göre sıralayarak listeleyiniz.

Çözüm 1)

Select * from ogrenci 
       order by sinif,cinsiyet


ETİKETLER

Select - Order By -
62-) Adı Serpil Soyadı Bakır olan öğrencileri siliniz.

Çözüm 1)

Delete from ogrenci 
       where ad = 'Serpil' and soyad = 'Bakır'


ETİKETLER

Delete - Where - Çoklu Şart -
63-) 10A sınıfından rasgele seçilmiş bir kız öğrenci listeleyiniz.

Çözüm 1)

Select top 1 * from ogrenci 
	where sinif= '10A' and cinsiyet= 'K' 
	order by newid()


ETİKETLER

Select - Top - Where - Order By - Çoklu Şart -
64-) 9B sınıfının erkek öğrencilerini yazarlar tablosuna ekleyiniz.

Çözüm 1)

Insert into yazar(ad,soyad) 
       select ad,soyad from ogrenci
              where sinif='9A' and cinsiyet='E'

Çözüm 2)

Insert into yazar 
       select ad,soyad from ogrenci 
              where sinif='9A' and cinsiyet='E'


ETİKETLER

Select - Insert - Where -
65-) Adı a harfi ile başlayan öğrenciler listelensin

Çözüm 1)

Select * from ogrenci 
       where ad like 'a%'


ETİKETLER

Select - Where - Like -
66-) Tüm öğrencilerin adını soyadını,aldığı kitabın adını,kitap aldığı tarihi ve kitabın türünü listeleyiniz?

Çözüm 1)

Select ogrenci.ad as OgrenciAd,
	   ogrenci.soyad,kitap.ad as KitapAd,
	   atarih,tur.ad as TurAd 
from ogrenci,islem,kitap,tur 
where ogrenci.ogrno = islem.ogrno and 
	  kitap.kitapno = islem.kitapno and 
	  kitap.turno = tur.turno

Çözüm 2)

Select ogrenci.ad as studentName,
	   ogrenci.soyad,kitap.ad as BookName,
	   atarih,tur.ad as TypeName 
from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
join kitap on kitap.kitapno = islem.kitapno
join tur on kitap.turno = tur.turno


ETİKETLER

Select - Join - Where - Çoklu Tablo -
67-) 11B sınıfının kız öğrencilerinin adını soyadını,aldığı kitabın adını ve kitap aldığı tarihi listeleyiniz?

Çözüm 1)

Select ogrenci.ad as studentName,ogrenci.soyad,
	   kitap.ad as BookName,atarih
from ogrenci, islem, kitap, tur, yazar 
where ogrenci.ogrno = islem.ogrno and 
	  kitap.kitapno = islem.kitapno and 
	  sinif='11B' and cinsiyet='F'

Çözüm 2)

Select ogrenci.ad as studentName,ogrenci.soyad,
	   kitap.ad as BookName,atarih
from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
join kitap on kitap.kitapno = islem.kitapno 
where sinif='11B' and cinsiyet='F'


ETİKETLER

Select - Join - Where - Çoklu Şart - Çoklu Tablo -
68-) Tüm Öğrencileri karışık sıralı olarak listeleyiniz.

Çözüm 1)

Select * from ogrenci 
       order by newid()


ETİKETLER

Select - Order By -
69-) 5 tane farklı öğrenci adı listeletiniz.

Çözüm 1)

Select distinct top 5  ad from ogrenci


ETİKETLER

Select - Top - Distinct -
70-) Öğrenci numarası 20 ile 30 arasında olan öğrencileri listeleyiniz

Çözüm 1)

Select * from ogrenci 
       where ogrno<= 20 and ogrno< 30

Çözüm 2)

Select * from ogrenci 
       where ogrno between 20 and 30


ETİKETLER

Select - Where - Between - Çoklu Şart -
71-) Tüm öğrencilerin sayısını listeleyiniz.

Çözüm 1)

Select count(*) from ogrenci

Çözüm 2)

Select count(ogrno) from ogrenci


ETİKETLER

Select - Toplam Fonksiyonları -
72-) Kitap tablosunda en fazla puan kaçtır.

Çözüm 1)

Select max(puan) from kitap


ETİKETLER

Select - Toplam Fonksiyonları -
73-) Bütün öğrencilerin puanlarının ortalamasını kaçtır.

Çözüm 1)

Select avg(puan) from ogrenci


ETİKETLER

Select - Toplam Fonksiyonları -
74-) Gerilim türündeki toplam kitap sayısını listeleyiniz.

Çözüm 1)

Select count(*) from kitap 
join tur on tur.turno = kitap.turno 
where tur.ad = 'Gerilim'


ETİKETLER

Select - Join - Where - Toplam Fonksiyonları - Çoklu Tablo -
75-) Parametre olarak belirtilen iki sayı arasında rasgele sayı seçen stored procedure

Çözüm 1)

Create Procedure Sp_Rasgele 
@first int,
@second int,
@result int output
As
Begin
     Set @result =Floor(RAND() * (@second-@first))+@first
End
--Procedure yi çalıştırmak için
Declare @r int
Execute Sp_Rasgele 20,30,@r output
Select @r


ETİKETLER

Procedure - Declare -
76-) Ayşe Bakır isimli öğrencinin okuduğu kitap sayısını listeleyiniz.

Çözüm 1)

Select count(*) from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
where ogrenci.ad = 'Ayşe' and ogrenci.soyad = 'Bakır'


ETİKETLER

Select - Join - Where - Çoklu Şart - Toplam Fonksiyonları - Çoklu Tablo -
77-) 3 tane farklı kitap adı listeleyiniz.

Çözüm 1)

Select distinct top 3  ad from kitap


ETİKETLER

Select - Top - Distinct -
78-) En son kitap alan öğrencinin bilgilerini listeleyiniz.

Çözüm 1)

Select top 1 ogrenci.*,atarih
from ogrenci,islem 
where ogrenci.ogrno = islem.ogrno 
order by islem.atarih desc

Çözüm 2)

Select top 1 ogrenci.*,atarih
from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
order by islem.atarih desc

Çözüm 3)

Select ogrenci.*,atarih
from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
where atarih = (Select max(atarih) from islem)


ETİKETLER

Select - Top - Join - Where - Order By - Alt Sorgu - Çoklu Tablo -
79-) Sınıf mevcudu 30 dan fazla olan sınıfları ve öğrenci sayılarını listeleyiniz.

Çözüm 1)

Select sinif,count(*) as OgrenciSayısı
from ogrenci 
group by sinif
having count(*) >= 30


ETİKETLER

Select - Group By - Having - Takma Ad -
80-) Toplam kaç kız ve kaç erkek olduğunu listeleyiniz.

Çözüm 1)

Select cinsiyet,count(*) as ogrenciSayısı
from ogrenci 
group by cinsiyet


ETİKETLER

Select - Group By - Toplam Fonksiyonları - Takma Ad -
81-) Yılların çeyreklerine (her 4 aya) göre okunan kitap sayısını listeleyiniz

Çözüm 1)

Select Year(takendate) as Yıl, datepart(qq,takendate) as Quarter,count(*) as Sayı
from islem 
group by Year(takendate),datepart(qq,takendate)


ETİKETLER

Select - Group By - SQL Fonksiyonları -
82-) 20 Numaralı öğrencinin adını Süleyman olarak güncelleyiniz.

Çözüm 1)

Update ogrenci set ad = 'Süleyman' where ogrno = 20


ETİKETLER

Update - Where -
83-) Sınıf isimlerini ve her sınıfta kaç kişi olduğunu listeleyiniz

Çözüm 1)

Select sinif,count(*) as ogrenciSayısı
from ogrenci 
group by sinif


ETİKETLER

Select - Group By - Toplam Fonksiyonları -
84-) Öğrencileri adına göre tersten sıralayınız.

Çözüm 1)

Select * from ogrenci 
       order by ad desc


ETİKETLER

Select - Order By -
85-) Adı Suna olup soyadında a harfi olmayan öğrencilerin bilgilerini listeleyiniz.

Çözüm 1)

select * from ogrenci 
     where ad= 'Suna' and soyad not like '%a%'


ETİKETLER

Select - Where - Like - Çoklu Şart -
86-) Sayfasayısı en fazla oaln kitapbın puanını 10 arttırın

Çözüm 1)

Update kitap set puan +=10 
       where sayfasayisi =  (Select MAX(sayfasayisi) from kitap)


ETİKETLER

Update - Where - Alt Sorgu - Toplam Fonksiyonları -
87-) Öğrenci tablosundan sadece 5 kayıt listeletiniz.

Çözüm 1)

Select top 5 * from ogrenci


ETİKETLER

Select - Top -
88-) Öğrenci tablosuna adı Selma soyadı Aydın olan bir öğrenci ekleyiniz.

Çözüm 1)

Insert into ogrenci 
       values ('Selma','Aydın',null,null,null,null)

Çözüm 2)

Insert into ogrenci(ad,soyad) 
       values ('Selma','Aydın')


ETİKETLER

Insert -
89-) Tüm kitapları listeleyiniz.

Çözüm 1)

Select * from kitap


ETİKETLER

Select -
90-) Aziz Nesin isimli yazarın kitaplarının toplam puanı kaçtır.

Çözüm 1)

Select sum(puan) from kitap 
join yazar on yazar.yazarno = kitap.yazarno 
where yazar.ad = 'Aziz' and yazar.soyad = 'Nesin'


ETİKETLER

Select - Join - Where - Çoklu Şart - Toplam Fonksiyonları - Çoklu Tablo -
91-) 10 tane yazar listeletiniz.

Çözüm 1)

Select top 10 * from yazar


ETİKETLER

Select - Top -
92-) Öğrencilerin adını, soyadını ve okudukları kitap sayılarını listeleyiniz.

Çözüm 1)

Select ad,soyad,count(*) KitapSayısı
from ogrenci,islem 
where ogrenci.ogrno = islem.ogrno 
group by ogrenci.ogrno,ad,soyad

Çözüm 2)

Select ad,soyad,count(*) KitapSayısı
from ogrenci
join islem on ogrenci.ogrno = islem.ogrno 
group by ogrenci.ogrno,ad,soyad


ETİKETLER

Select - Join - Where - Group By - Toplam Fonksiyonları - Takma Ad - Çoklu Tablo -
93-) Parametre olarak girilen sayının asal olup olmadığını bir çıkış(output) parametresi ile geri döndüren stored procedure.

Çözüm 1)

Create Procedure sp_isPrime (@number int,@result bit output) as
Begin
	Set @result = 1
	Declare @i int = 2
	While (@i<@number)
	Begin
		if(@number % @i = 0)
		Begin
			Set @result = 0
			break
		End
		Set @i += 1
	End
	return @result
End
--To Execute The Stroed Procedure
Declare @result bit
Execute sp_isPrime 11,@result output
Select @result


ETİKETLER

Procedure - Declare -
94-) Tüm kitapların sayfa sayısının ortalaması kaçtır.

Çözüm 1)

Select avg(sayfasayisi) from kitap


ETİKETLER

Select - Toplam Fonksiyonları -
95-) 24 Numaralı öğrencinin adını Arzu, soyadını Çelik olarak güncelleyen sorguyu yazınız.

Çözüm 1)

Update ogrenci set ad = 'Arzu', soyad = 'Çelik' where ogrno = 24


ETİKETLER

Update - Where -
96-) Sayfa sayısı alanında 5 rakamı geçen kitapları listeleyiniz.

Çözüm 1)

Select * from kitap 
       where kitapno like '%1%'


ETİKETLER

Select - Where - Like -
97-) 11B sınıfının öğrencilerinin adını soyadını,aldığı kitabın adını ve kitap aldığı tarihi listeleyiniz?

Çözüm 1)

Select ogrenci.ad as ogrenciAd, ogrenci.soyad,
	   kitap.ad as KitapAd,atarih
from ogrenci,islem,kitap,tur,yazar 
where ogrenci.ogrno = islem.ogrno and 
	  kitap.kitapno = islem.kitapno and sinif='11B'

Çözüm 2)

Select ogrenci.ad as ogrenciAd,ogrenci.soyad,
	   kitap.ad as kitapAd,atarih
from ogrenci 
join islem on ogrenci.ogrno = islem.ogrno 
join kitap on kitap.kitapno = islem.kitapno 
where sinif='11B'


ETİKETLER

Select - Join - Where - Çoklu Tablo -
98-) Her sınıftaki sadece kız öğrenci sayılarını listeleyiniz

Çözüm 1)

Select sinif,cinsiyet,count(*) as OgrenciSayısı
from ogrenci 
where cinsiyet = 'F'
group by cinsiyet,sinif


ETİKETLER

Select - Where - Group By - Toplam Fonksiyonları - Takma Ad -
99-) Kitap numarası 3,4,8,9,11,23 olan kitapları listeleyiniz.

Çözüm 1)

Select * from kitap 
       where kitapno in(3,4,8,9,11,23)

Çözüm 2)

Select * from books 
    where kitapno = 3 or
	      kitapno = 4 or 
		  kitapno = 8 or 
		  kitapno = 9 or 
		  kitapno =11 or 
		  kitapno = 23


ETİKETLER

Select - Where -
100-) Hiç okunmamış olan kitapları listeleyiniz

Çözüm 1)

Select kitap.* from kitap 
left join islem on kitap.kitapno = islem.kitapno 
where islemno is null

Çözüm 2)

Select * from kitap 
where kitapno not in 
	(Select kitapno from islem)


ETİKETLER

Select - Where - Alt Sorgu - Çoklu Tablo - Left Join -
101-) Adı Ali veya Ayşe olan numarası 30 dan az olan öğrencilerin bilgilerini listeleyiniz.

Çözüm 1)

select * from ogrenci 
     where (ad='Ali' or ad= 'Ayşe') and ogrno <30

Çözüm 2)

Select * from ogrenci 
     where ad='Ali' and ogrno <30 or ad='Ayşe' and ogrno <30

Çözüm 3)

Select * from ogrenci 
     where ad in('Ali','Ayşe') and ogrno<30


ETİKETLER

Select - Where - Parantez - Çoklu Şart -
102-) Her çeyrek yılda kaç öğrenci doğduğunu listeleyiniz.

Çözüm 1)

Select Year(dtarih) as Yıl, datepart(qq,dtarih) as Quarter,count(*) as Sayı
from ogrenci 
group by Year(dtarih),datepart(qq,dtarih)


ETİKETLER

Select - Group By - SQL Fonksiyonları - Takma Ad -
103-) Deneme türündeki kitapların sayfa sayılarının ortalaması kaçtır.

Çözüm 1)

Select avg(sayfasayisi) from kitap 
join tur on tur.turno = kitap.turno 
where tur.ad = 'Deneme'


ETİKETLER

Select - Join - Where - Toplam Fonksiyonları - Çoklu Tablo -
104-) Numarası tek sayı olan öğrenciler

Çözüm 1)

Select * from ogrenci 
        where ogrno % 2 = 1


ETİKETLER

Select - Where -
105-) Sayfasayısı en fazla olan kitabı listeleyiniz.

Çözüm 1)

Select top 1 * from kitap 
       order by sayfaSayisi desc

Çözüm 2)

Select * from kitap 
     where sayafaSayisi=(Select max(sayfaSayisi) from kitap)


ETİKETLER

Select - Top - Where - Order By - Alt Sorgu - Toplam Fonksiyonları -
106-) Sayfa sayısı çift olan kitapları listeleyiniz.

Çözüm 1)

Select * from kitap 
       where kitapno % 2 = 0


ETİKETLER

Select - Where -
107-) Sınıf isimlerini listeleyiniz. Aynı sınıf ismi bir kere listelensin?

Çözüm 1)

Select distinct sinif from ogrenci


ETİKETLER

Select - Distinct -
108-) Parametre olarak girilen iki sayının bir birine bölümünden sonucu ve kalanı çıkış(output) parametresi olarak geri döndüren procedure

Çözüm 1)

Create Procedure sp_Devide(@n1 int,@n2 int,@division int output,@remaining int output) as
Begin
	SEt @division = 0
	While(@n2<=@n1)
	Begin
		Set @n1 = @n1-@n2
		Set @division+=1
	End
	Set @remaining = @n1
End
--To Execute the Stored Procedure
Declare @d int,@r int
Execute sp_Devide 34,7,@d output,@r output
Select @d Division,@r Remaining


ETİKETLER

Procedure - Declare -
109-) Adının içinde a harfi geçen kitapları listeleyiniz.

Çözüm 1)

Select * from ogrenci 
       where ad like '%a%'


ETİKETLER

Select - Where - Like -
110-) Öğrencilerin adını, soyadını ve okudukları kitap sayısını en çok okuyandan az okuyana göre sıralı olarak listeleyiniz.

Çözüm 1)

Select ad,soyad,count(*) KitapSayısı
from ogrenci
join islem on ogrenci.ogrno = islem.ogrno 
group by ogrenci.ogrno,ad,soyad
order by BookCount desc

Çözüm 2)

Select ad,soyad,count(*) KitapSayısı
from ogrenci,islem 
where ogrenci.ogrno = islem.ogrno 
group by ogrenci.ogrno,ad,soyad
order by BookCount desc


ETİKETLER

Select - Join - Where - Group By - Order By - Toplam Fonksiyonları - Takma Ad - Çoklu Tablo -
111-) Yaşı en fazla olan öğrenciyi listeleyiniz

Çözüm 1)

Select * from ogrenci 
       order by dtarih


ETİKETLER

Select - Order By -
112-) Okuduğu kitap sayısı 5 ten az olan öğrencileri siliniz.

Çözüm 1)

Delete from ogrenci 
where ogrno in (Select ogrno from islem 
                group by ogrno 
				having count(*)<5)


ETİKETLER

Delete - Where - Group By - Having - Alt Sorgu -
Kütüphane Veritabanı
Database