Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
|
ORDER BY ifadesi bu ifade ile sonucları sıralamak mumkundur.
Satırları sıralamak için ifade şu şekilde kurulur;
SELECT kolonAd(lar)i FROM tabloAdi ORDER BY referansKolonu
örnek veri tabanımızda "bilgi" tablomuz olsun
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
SELECT ad,soyad FROM bilgi ORDER BY ad
dediğimizde sonuc
ad soyad
----- -------
ali özgür
necmi yakan
veli sözcü
eger sıralamayı tersine cevirmek istersek ifadenin sonuna DESC sözdizimini, sayıları kucukten buyuye sıralamak içinde ASC sözdizimini ekliyoruz.
SELECT ad,soyad FROM bilgi ORDER BY ad DESC
dediğimizde sonuc
ad soyad
----- -------
veli sözcü
necmi yakan
ali özgür AND ve OR operatorlerinin kullanılısı
AND ve OR operatorleri WHERE ifadesiyle birlikte, birden cok durumu birleştirmek için kullanılır. AND operatoru eger TÜM durumlar dogru ise ilgili satırı gosterir. OR operatoru ise durumlardan bir tanesi bile dogru olsa bile ilgili satırı gosterir.
örnekleri "bilgi" adlı tablomuza gore vericek olursak
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
osman yakan van 33
alp özgür ankara 12
SELECT * FROM bilgi WHERE ad=’ali’ AND soyad=’özgür’
dediğimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
SELECT * FROM bilgi WHERE ad=’alp’ OR soyad=’özgür’
dediğimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
alp özgür ankara 12
heriki operatorude birleştirecek olursak
SELECT * FROM bilgi WHERE (ad=’alp’ OR ad=’ali’) AND LastName=’özgür’
dediğimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
alp özgür ankara 12 IN operatorunun kullanılısı
Bu operator, bir degeri tam biliyorsak ve bunu goruntulemek istiyorsak kullanabiliriz.
ifadenin kurulusu; SELECT kolonAdi FROM tabloAdi WHERE colonAdi IN (degerBir,degerIki,...)
örnek veritabanımızda "bilgi" tablomuz olsun
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
osman yakan van 33
alp özgür ankara 12
SELECT * FROM bilgi WHERE il IN (’van’,’trabzon’)
dedigimzde sonuc
ad soyad il yas
----- ------- ---- -----
veli sözcü trabzon 20
osman yakan van 33 BETWEEN operatorunun kullanılısı
Bu operator yardımı ile iki deger arasındaki veriyi secebiliriz, bu degerler numara,yazı yada tarih olabilir.
ifadenin kurulusu; SELECT kolonAdi FROM tabloAdi WHERE colonAdi BETWEEN degerBir AND degerIki
örnek veritabanımızda "bilgi" tablomuz olsun
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
osman yakan van 33
alp özgür ankara 12
SELECT * FROM bilgi WHERE il BETWEEN ’trabzon’ AND ’van’
dediğimizde sonuc
ad soyad il yas
----- ------- ---- -----
veli sözcü trabzon 20
necmi yakan sivas 19
Yanlız BETWEEN operatoru veritabanı cinsine gore degişik sonuclar verebilir. Yukarda oldugu gibi sonraki degeri sonuca dahil etmeyebilir, ilk degeri dahil etmeyebilir, iki degerden hiçbirini dahil etmeden sonuc verebilir yada iki degeride dahil edip sonucu verebilir. Bu yuzden etkili biçimde kullanmadan once bu operatorun tam olarak nasıl davrandıgını veritabanınızda denemeniz önerilir.
Birde bu aralıkta olmayanlarıda listeleyebiliriz;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
osman yakan van 33
alp özgür ankara 12
SELECT * FROM bilgi WHERE il NOT BETWEEN ’trabzon’ AND ’van’
dediğimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
osman yakan van 33
alp özgür ankara 12 ALIAS operatorunun kullanılısı
Bu operator ile bir kolonun yada tablonun adı bir baska şeymiş gibi kullanılabilir.
ifadelerin kurulusu; SELECT kolon AS kolonAliasi FROM tablo SELECT kolon FROM tablo AS tabloAliasi
örnek veritabanımızda "bilgi" tablomuz olsun
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
osman yakan van 33
alp özgür ankara 12
SELECT soyad AS aile, il AS yerleske FROM bilgi
dediğimizde sonuc
aile yerleske
----- --------
özgür ankara
sözcü trabzon
yakan sivas
yakan van
özgür ankara
yada alias ı tablo için kullanabiliriz..
SELECT ad, soyad FROM bilgi AS nufusBilgileri
ad soyad
----- -------
ali özgür
veli sözcü
necmi yakan
osman yakan
alp özgür SQL Join methodunun kullanılısı
Bazen iki yada daha fazla tablodan veri cekmemiz gerekebilir, bu gibi durumlarda bu methodu kullanırız.
Veritabanındaki tablolar, birbirleriyle bazı key lerle ilişkilendirilmiştir. İlk ve oncelikli (primary) key, satırlarda bulunan kolonla birlikte tek ve benzeri olmayan degerdir. İki verinin birbiriyle ilişkilendirilmesinin amacı tabloları aşıp, tablo isimlerini tekrarlamadan veriyi almaktır.
veritabanımızda iki adet tablomuz olsun
ilk tablo adımız "kisi"
kisiID tamAdi
------ --------
01 ali,özgür
02 veli,sözcü
03 necmi,yakan
04 osman,yakan
05 alp,özgür
ikinci tablo adımız "detay"
kimlikNo il kisiID
-------- ---- ------
4893 ankara 01
6889 trabzon 02
3684 sivas 03
5285 van 04
4234 ankara 05
"kisi" tablosundaki "kisiID" kolonu bir ilk ve oncelikli (primary) keydir. Bunun anlamı baska herhangi bir satır aynı degere sahip olamaz. Bu sayede diger kolonlarda aynı degeri bulunan veriler olsa bile bu key onları birbirinden ayırmakta kullanılabilir.
"detay" tablosunun il ve oncelikli (primary) keyi "kimlikNo" dur. Ve "kisiID" kolonu "bilgi" tablosunu "detay" tablosuyla baska herhangi bir veri girmeden ilişkilendirmiştir.
veritabanımıza birkac SQL tarzı soru soralım bakalım nasıl soruyoruz ve nasıl cevaplar alıyoruz Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
İnsansı soru: kim nerde oturuyor?
SQL tarzı soru(sorgu): SELECT kisi.tamAd, detay.il FROM kisi, detay WHERE kisi.kisiID=detay.kisiID
Cevap:
tamAdi il
-------- ----
ali,özgür ankara
veli,sözcü trabzon
necmi,yakan sivas
osman,yakan van
alp,özgür ankara
İnsansı soru: kim trabzonda oturuyor?
SQL tarzı soru(sorgu): SELECT kisi.tamAdi FROM kisi, detay WHERE kisi.kisiID=detay.kisiID AND detay.il=’trabzon’
Cevap:
tamAdi
--------
veli,sözcü
Bu işi birde JOIN sozdizimi kullanarak yapabiliriz. INNER JOIN operatorunun kullanılısı
ifadelerin kurulusu; SELECT bolgiBir, bolgiIki, bolgiUc FROM ilkTablo INNER JOIN ikinciTablo ON ilkTablo.keyBolgesi = ikinciTablo.yabanciKeyBolgesi
veritabanımızda iki adet tablomuz olsun
ilk tablo adımız "kisi"
kisiID tamAdi
------ --------
01 ali,özgür
02 veli,sözcü
03 necmi,yakan
04 osman,yakan
05 alp,özgür
06 zeki,civi
07 alp,öztürk
ikinci tablo adımız "detay"
kimlikNo il kisiID
-------- ---- ------
4893 ankara 01
6889 trabzon 02
3684 sivas 03
5285 van 04
4234 ankara 05
ve sorularımıza INNER JOIN kullarak devam edelim..
İnsansı soru: kim nerde oturuyor?
SQL tarzı soru(sorgu): SELECT kisi.tamAdi, detay.il FROM kisi INNER JOIN detay ON kisi.kisiID = detay.kisiID
cevap:
tamAdi il
-------- ----
ali,özgür ankara
veli,sözcü trabzon
necmi,yakan sivas
osman,yakan van
alp,özgür ankara
Bu method tablolardaki eşleşmiş her veriyi cıkartıcaktır, eger eşlenmemiş bir veri varsa onu cıkarmıyacaktır. LEFT JOIN operatorunun kullanılısı
ifadelerin kurulusu; SELECT bolgiBir, bolgiIki, bolgiUc FROM ilkTablo LEFT JOIN ikinciTablo ON ilkTablo.keyBolgesi = ikinciTablo.yabanciKeyBolgesi
veritabanımızda iki adet tablomuz olsun
ilk tablo adımız "kisi"
kisiID tamAdi
------ --------
01 ali,özgür
02 veli,sözcü
03 necmi,yakan
04 osman,yakan
05 alp,özgür
06 zeki,civi
07 alp,öztürk
ikinci tablo adımız "detay"
kimlikNo il kisiID
-------- ---- ------
4893 ankara 01
6889 trabzon 02
3684 sivas 03
5285 van 04
4234 ankara 05
ve sorularımıza INNER JOIN kullarak devam edelim..
İnsansı soru: kim nerde oturuyor?
SQL tarzı soru(sorgu): SELECT kisi.tamAdi, detay.il FROM kisi LEFT JOIN detay ON kisi.kisiID = detay.kisiID
cevap:
tamAdi il
-------- ----
ali,özgür ankara
veli,sözcü trabzon
necmi,yakan sivas
osman,yakan van
alp,özgür ankara
zeki,civi
alp,öztürk |