Select sorguları, SQL’de en sık kullanılan deyimdir.
SQL SELECT deyimi, verileri bir veritabanı tablosundan sonuç tablosu biçiminde almak için kullanılır. Bu sonuç tabloları sonuç kümeleri olarak adlandırılır. Tüm tabloyu ya da belirli kurallara göre belirli kayıtlar alabiliriz.
SELECT komut deyiminin SELECT yan tümcesiyle, sorgu sonucunda görüntülenmesini istediğimiz sütunları ve isteğe bağlı olarak, sonuç tablosunun üzerinde görmek istediğimiz sütun başlıklarını belirleriz.
Bu yazıda SQL select sorgularını basit, orta ve zor olacak şekilde çeşitli zorluk seviyelerinde hazırladım. Hazırlanan sorgular SQL Server üzerinde test edilmiştir.
Siz de sorgulama yapmak isterseniz kütüphane veritabanını indirip, sql sorgularını test edebilirsiniz.
SQL SELECT ÖRNEKLERİ
Sorgu 1: Öğrenci tablosundaki tüm kayıtları listeleyin.
1 2 3 | select * from ogrenci |
Sorgu 2: Öğrenci tablosundaki öğrencinin adını ve soyadını ve sınıfını listeleyin.
1 2 3 | select ograd,ogrsoyad,sinif from ogrenci |
Sorgu 3: Öğrenci tablosundaki cinsiyeti kız (K) olan kayıtları listeleyiniz.
1 2 3 | select * from ogrenci where cinsiyet='K' |
Sorgu 4: Öğrenciler tablosundaki sınıfların adını listeleyiniz.(Not her sınıf adı birkez gösterilsin.)
1 2 3 | select distinct sinif from ogrenci |
Sorgu 5: Öğrenci tablosundaki cinsiyeti Kız ve Sınıfı 10A olan öğrencileri listeleyiniz.
1 2 3 | select * from ogrenci where cinsiyet='K' and sinif='10A' |
Sorgu 6: Öğrenci tablosundaki 10A veya 10B sınıfındaki öğrencilerin adını, soyadını ve sınıfını listeleyiniz.
1 2 3 4 | select ograd, ogrsoyad, sinif from ogrenci where sinif='10A' or sinif='10B' |
Sorgu 7: Öğrenci tablosundaki öğrencinin adını, soyadını ve numarasını okul numarasıolarak listeleyiniz. (as kullanım örneği)
1 2 3 | select ograd,ogrsoyad,ogrno as 'okul numarası' from ogrenci |
Sorgu 8: Öğrenci tablosundaki Adı ‘A’ harfi ile başlayan öğrencileri listeleyiniz.
1 2 3 | select * from ogrenci where ograd like 'A%' |
Sorgu 9: kitap tablosundaki sayfa sayısı 50 ile 200 arasında olan kitapların adını ve sayfa sayısını listeleyiniz.
1 2 3 | select * from kitap where sayfasayisi between 50 and 200 |
Sorgu 10: Öğrenci tablosunda adı Fidan, İsmail ve Leyla olan öğrencileri listeleyiniz.
1 2 3 | select * from ogrenci where ograd in ('Fidan','İsmail','Leyla') |
Sorgu 11: Öğrenci tablosundaki öğrencilerden adı A, D ve K ile başlayan öğrencileri listeleyiniz.
1 2 3 | select * from ogrenci where ograd like '[ADK]%' |
Sorgu 12: Öğ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 3 4 | select ograd,ogrsoyad,sinif,cinsiyet from ogrenci where (sinif='9A' and cinsiyet='E') or (sinif='9B' and cinsiyet='K') |
Sorgu 13: Öğrenci tablosunda doğum yılı 1989 olan öğrencileri listeleyiniz.(Not: veritabanında tarihler ay/gün/yıl şeklinde sorgulanır)
1 2 3 4 | select * from ogrenci where dtarih between '01/01/1989' and '12/31/1989' |
Sorgu 14: Öğrenci numarası 30 ile 50 arasında olan Kız öğrencileri listeleyiniz.
1 2 3 4 | select * from ogrenci where ogrno between 30 and 70 and cinsiyet = 'K' |
Sorgu 15: Öğrencileri adına göre sıralayınız.
1 2 3 | select * from ogrenci order by ograd |
Sorgu 16: Öğrencileri adına, adı aynı olanlarıda soyadlarına göre sıralayınız.
1 2 3 | select * from ogrenci order by ograd,ogrsoyad |
Sorgu 17: 10A sınıfındaki öğrencileri okul numarasına göre azalan olarak sıralayınız.
1 2 3 | select * from ogrenci where sinif='10A' order by ogrno desc |
Sorgu 18: Öğrenciler tablosundaki ilk 10 kaydı listeleyiniz.
1 2 3 | select top 10 * from ogrenci |
Sorgu 19: Öğrenciler tablosundaki ilk 10 kaydın ad, soyad ve doğum tarihi bilgilerini listeleyiniz.
1 2 3 | select top 10 ograd,ogrsoyad,dtarih from ogrenci |
Sorgu 20: Sayfa sayısı en fazla olan kitabı listeleyiniz.
1 2 3 | select top 1 * from kitap order by sayfasayisi desc |
Sorgu 21: Öğrenciler tablosundaki en genç öğrenciyi listeleyiniz.
1 2 3 | select top 1 ograd,ogrsoyad,dtarih from ogrenci order by dtarih desc |
Sorgu 22: 10A sınıfındaki en yaşlı öğrenciyi listeyin.
1 2 3 4 | select top 1 ograd,ogrsoyad,dtarih from ogrenci where sinif='10A' order by dtarih |
Sorgu 23: Öğrencileri sınıflarına göre gruplayarak listeleyin.
1 2 3 | select * from ogrenci order by sinif |
Sorgu 24: Öğrencileri her sorgulamada sıralaması farklı olacak şekilde rastgele listeleyin.
1 2 3 | select * from ogrenci order by newid() |
Sorgu 25: Rastgele bir öğrenci seçin
1 2 3 | select top 1 * from ogrenci order by newid() |
Add Comment