Tekil Mesaj gösterimi
Alt 01 Mart 2006, 05:36   #2
Çevrimdışı
hitman
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)



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

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver