Basit Seçme Sorguları
SQL dilinde seçme ve hesaplama SELECT deyimi ile yapılır.
SELECT 5+3
Genel ifade
SELECT ...1... FROM ...2... WHERE ...3...
1 nolu yere, listede bulunmasını istediğimiz kolon isimleri yazılır.
SELECT adi, soyadi, adresi, borcu,...
Eğer tabloda bulunan tüm kolonların bulunması istenirse * (yıldız) karakteri konur.
SELECT *, ...
2 nolu yere, sorgulanan tablonun adı yazılır.
SELECT * FROM tbl_Ogrenci
tbl_ogrenci isimli tablonun tüm kolonları listede bulunur.
3 nolu yere, seçme koşulu yazılır. Bu seçme koşulu ile listede bulunması istenen kayıtlar seçilir.
... WHERE adi='kenan' and soyadi='kılıçaslan'
... where borcu>1000 and grubu='A'
... where not (borcu>1000 and grubu='A')
ÖNEMLİ NOT : Sorguda kolon seçme, 1 nolu yere yazılan kolon isimleri ve matematik ifade ile, satır seçme ise 3 nolu yere yazılan mantıksal ifade ile olur.
Basit seçme sorgusu örnekleri
Sorgulayacağımız tablo, aşağıdaki kod ile oluşturulmuş olsun.
CREATE TABLE ogrenci (
Okulno char(9) primary key not null,
Adi varchar(20) not null,
Soyadi varchar(20) not null,
Adresi varchar(100),
ilPlakaNo tinyint,
Donem char(9),
FakulteKodu char(3),
BolumKodu char(2)
)
İlk önce bu tabloda bulunan tüm kayıtları listeleyelim.
SELECT * FROM Ogrenci
Where deyimi yazılmadığında tüm kayıtlar listelenir.
Soru
Öğrenci tablosunda okulno 07012 olan öğrencinin adı ve soyadını veren sorguyu yazınız.
Çözüm
SELECT adi, soyadi FROM Ogrenci where okulno='07012'
Soru
Öğrenci tablosunda 06060,07019,07022 nolu öğrencilerin adı,soyadı ve okulnosunu veren sorguyu yazınız.
Çözüm-1
SELECT adi, soyadi, okulno FROM ogrenci WHERE
okulno='06060' or okulno='07019' or okulno='07022'
Çözüm-2
SELECT adi, soyadi, okulno FROM ogrenci WHERE
okulno IN ('06060', '07019', '07022')
Ad ve soyad değerini birleştirerek çıktı alalım.
+ : string için birleştirme
SELECT adi+soyadi, okulno FROM ogrenci WHERE
okulno IN (’06060’, ’07019’, ’07022’)
Adi ve soyadi birleşti ancak kolon ismi çıkmadı. Kolona çıktıda isim vermek için AS kelimesi kullanılır.
SELECT adi+soyadi as ad_soyad, okulno
FROM ogrenci WHERE okulno
IN (’06060’, ’07019’, ’07022’)
Sorguda tablo isimlerini kolon isimleri yanına yazmak
Kolon isimleri, tablo isimleri ile beraber de yazılabilir.
SELECT ogrenci.adi+ ogrenci.soyadi as ad_soyad,
ogrenci.okulno
FROM ogrenci WHERE ogrenci.okulno
IN (’06060’, ’07019’, ’07022’)
Ancak bu uzun, karmaşık ve okunaksızdır. Okunaklı olması için tablo adına bir veya iki karakterlik ve sadece bu sorguda geçerli olan bir kısa isim verebiliriz.
SELECT o.adi+ o.soyadi as ad_soyad, o.okulno
FROM ogrenci o WHERE o.okulno
IN (’06060’, ’07019’, ’07022’)
Kısa isim olarak genellikte sorgulanan tablonun ilk harfi yazılır. Aynı harfle başlayan iki tablo birleştirilerek sorgulanıyorsa ilk iki karakter kullanılır.
Verileri sıralı listelemek
Verileri sıralı listelemek ORDER BY deyimi kullanılır.
SELECT ... FROM ... WHERE ... ORDER BY ..4..
4 nolu yere, sıralama yapılacak kolonun ismi yazılır.
... ORDER BY adi
adi kolonuna göre sıralı liste verir.
... ORDER BY soyadi, adi
Soyadına göre sıralama yapar, soyadı aynı olanları adına göre sıralar.
... ORDER BY adi DESC
Desc deyimi sıralamanın Z den A ya ya da büyükten küçüğe doğru olmasını sağlar.