SQL nedir ?
++ SQL in açilimi; Structured Query Language [ Yapisal Sorgu Dili ]
++ SQL sizi veritabanina erişmenizi saglar.
++ SQL, ANSI standardinda bir bilgisayar dilidir.
++ SQL veritabanina karşi sorgulari çaliştirabilir.
++ SQL veritabanindaki verileri tekrar ele alabilir.
++ SQL veritabanina yeni bir kayit ekleyebilir.
++ SQL veritabanindan bir kayit silebilir.
++ SQL veritabanindaki bir kaydi guncelleyebilir.
++ SQL kolay ösrenilir
SQL standarttir, fakat ...
SQL, ANSI (American National Standards Institute - Amerikan Ulusal Standardlari Enstitusü) standardinda vertabanina ulasmak ve işlemek için kullanilan bir bilgisayar dilidir. SQL komutlari veritabanindaki verileri guncellemek, tekrar ele almak için kullanilir. SQL in kullanildigi veritabani programlari MS Access, MS SQL Server, DB2, Informix, Oracle, Sybase vs. Fakat SQL dilinin birçok farkli versiyonlari vardir, ama yinede önemli anahtarlar genelde aynidir yada cok benzerdir (örnegin SELECT, UPDATE, DELETE, INSERT, WHERE, ve digerleri).
SQL Veritabani tablolari
Veritabani bir yada birden fazla tablodan olusur. Her tablonun bir adi vardir. Bu tablolardaki kayitlar dizilerde (row) saklanir.
Örnesin "bilgi" tablosunda;
ad soyad il yas----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
yukardaki tablo üç kayida sahiptir, her bir kişi için bir tane, yani 3 satira (row) ve ayrica 4 adet kolona (column) sahiptir.
SQL sorgulari
SQL ile, veritabani sorgulanabilir ve sonculari alinabilir.
Örnek bir sorgu;
SELECT soyad FROM bilgi
Sonucu;
soyad-----
özgür
sözcü
yakan
SQL Veri işleme dili (DML - Data Manipulation Language)
SQL, sorgulari calistirmak için bir sözdizimidir. Fakat ayni zamanda kayitlari guncelleme, ekleme ve silmek içinde kullanilir.
Bu sorgu ve guncelleme komutlari, birlikte SQL in bir bolumu olan Veri işleme dilinin olusturuyor:
++ SELECT - veritabanindaki tablodan veri alir
++ UPDATE - veritabanindaki tablodaki veriyi gunceller
++ DELETE - veritabanindaki tablodan veri siler
++ INSERT INTO - veritabanindaki tabloya yeni bir veri ekler
SQL Veri tanimlama dili (DDL - Data Definition Language)
SQL in bir bolumu olan veri tanimlama dili, veritabani tablolarinda işlem yapmaya izin veren, tablolari olusturmak yada silmek için kullanilir. Ayrica index (arama anahtari) belirlemedede kullanilan bir dildir. Tablolar arasinda etkileşimi saglayabilir, aralarinda bir bas kurabilirsiniz.
En sik kulllanilan veri tanimlama sözdizimleri:
## CREATE TABLE - tablo yaratir
## ALTER TABLE - tabloyu degiştirir
## DROP TABLE - tabloyu siler
## CREATE INDEX - index (arama anahtari) olusturur
## DROP INDEX - indexi siler
şimdi bu sözdizimlerini biraz daha ayrintili anlatalim...
SELECT ifadesi
Bu ifade tablodan veri secmek için kullanilir.
ifadenin kurulusu;
SELECT kolonAd(lar)i FROM tabloAdi
örnek veri tabanimizda "bilgi" tablomuzda
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
verileri var diyelim
SELECT yas FROM bilgi
dedisimizde
yas
---
15
20
19
sonucu aliriz.
birden cok kolon secmek için ise;
SELECT ad,soyad FROM bilgi
dedisimzde
ad soyad
----- -------
ali özgür
veli sözcü
necmi yakan
sonucunu verir.
tum kolonlari secmek içinde;
SELECT * FROM bilgi
dememiz yeterlidir.
SELECT DISTINCT ifadesi
Bu ifade sadece farkli ifadeleri secmek için kullanilir.
ifadenin kurulusu;
SELECT DISTINCT kolonAd(lar)i FROM tabloAdi
örnek veritabanimizda "veriler" tablomuzda
firma urunNo
----- --------
CS 4586278
CW 7894331
CL 456
CH 45689
CW 789666879
verileri var diyelim
SELECT firma FROM veriler
dedisimizde sonuc;
firma-----
CS
CW
CL
CH
CW
olucaktir.
Ama ifadeye distinct eklersek, yani
SELECT DISTINCT firma FROM veriler
dersek sonuc;
firma
-----
CS
CW
CL
CH
seklinde olucaktir, yani tekrarlanan satir bilgileri alinmiyacaktir.
WHERE şarti
Bu şart, select ifadesi ile kullanilir.
şartin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE kolonAdi operator deger
Bu şartta kullanilabilir operatorler;
= eşit
<e> büyüktür
<k>= büyük yada esittir
<= kücük yada esittir
BETWEEN belli bir aralik arasinda
LIKE belli bir kalipla arama
NOT: bazi SQL versiyonlarinda <yerine> Dogru
SELECT * FROM ipList WHERE ipNumarasi=127.0.0.1 ---> Yanlis
SELECT * FROM ipList WHERE kullaniciAdi=’MMx’ ---> Dogru
SELECT * FROM ipList WHERE kullaniciAdi=MMx ---> Yanlis
LIKE operatorunun kullanilisi
Bu operatorle belli bir kalipta arama yapabilirsiniz.
ifadenin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE kolonAdi LIKE kalip
(%) işareti bilinmeyen yada eksik olan karakter için kullanilir.
Örnek SQL ifadeleri;
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’A%’
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’%x’
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’%er%’
INSERT INTO ifadesi
Bu ifadeyi kullarak veritabanindaki bir tabloya bir satir ekleyebilirsiniz.
ifadenin kurulusu;
INSERT INTO tabloAdi (kolonBir,kolonIki,...) VALUES (kolonBir,kolonIki,...)
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
INSERT INTO bilgi VALUES (’veli’, ’sözcü’, ’trabzon’, ’20’)
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
olucaktir.
Tüm satirdaki bilgileri doldurmak yerine, sadece belli yerlere veri girmek için ne yapmak gerek derseniz, bir ornekle aciklayalim..
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
INSERT INTO Persons (ad, il) VALUES (’necmi’, ’sivas’)
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi sivas
olucaktir.
UPDATE ifadesi
Bu ifadeyi kullanarak veritabanindaki bir veriyi guncelleyebilirsiniz.
ifadenin kurulusu;
UPDATE tabloAdi SET kolonAdi = Yenideger WHERE kolonAdi = tanimlayiciDeger
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
UPDATE bilgi SET ad = ’osman’ WHERE soyad = ’yakan’
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
osman yakan sivas 19
olucaktir.
Birden fazla veriyi guncellemek isteyebiliriz, ohalde alttaki ornegi inceleyelim:
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
UPDATE bilgi SET il = ’hatay’, yas = ’13’ WHERE soyad = ’yakan’
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan hatay 13
DELETE ifadesi
Bu ifadeyi kullanarak veritabanindaki bir satiri silebilirsiniz.
ifadenin kurulusu;
DELETE FROM tabloAdi WHERE kolonAdi = tanimlayiciDeger
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
DELETE FROM bilgi WHERE yas = ’20’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
necmi yakan sivas 19
Tablodaki tüm bilgileri silmek için şu ifadeleri kullanabilirsiniz:
DELETE FROM tabloAdi
DELETE * FROM tabloAdi
ORDER BY ifadesi
bu ifade ile sonuclari siralamak mumkundur.
Satirlari siralamak için ifade şu şekilde kurulur;
SELECT kolonAd(lar)i FROM tabloAdi ORDER BY referansKolonu
örnek veri tabanimizda "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
dedisimizde sonuc
ad soyad
----- -------
ali özgür
necmi yakan
veli sözcü
eger siralamayi tersine cevirmek istersek ifadenin sonuna DESC sözdizimini, sayilari kucukten buyuye siralamak içinde ASC sözdizimini ekliyoruz.
SELECT ad,soyad FROM bilgi ORDER BY ad DESC
dedisimizde sonuc
ad soyad
----- -------
veli sözcü
necmi yakan
ali özgür
AND ve OR operatorlerinin kullanilisi
AND ve OR operatorleri WHERE ifadesiyle birlikte, birden cok durumu birleştirmek için kullanilir. AND operatoru eger TÜM durumlar dogru ise ilgili satiri gosterir. OR operatoru ise durumlardan bir tanesi bile dogru olsa bile ilgili satiri gosterir.
örnekleri "bilgi" adli 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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
SELECT * FROM bilgi WHERE ad=’alp’ OR soyad=’özgür’
dedisimizde 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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
alp özgür ankara 12
IN operatorunun kullanilisi
Bu operator, bir degeri tam biliyorsak ve bunu goruntulemek istiyorsak kullanabiliriz.
ifadenin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE colonAdi IN (degerBir,degerIki,...)
örnek veritabanimizda "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 kullanilisi
Bu operator yardimi ile iki deger arasindaki veriyi secebiliriz, bu degerler numara,yazi yada tarih olabilir.
ifadenin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE colonAdi BETWEEN degerBir AND degerIki
örnek veritabanimizda "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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
veli sözcü trabzon 20
necmi yakan sivas 19
Yanliz BETWEEN operatoru veritabani 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 nasil davrandigini veritabaninizda denemeniz önerilir.
Birde bu aralikta olmayanlarida 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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
osman yakan van 33
alp özgür ankara 12
++ SQL in açilimi; Structured Query Language [ Yapisal Sorgu Dili ]
++ SQL sizi veritabanina erişmenizi saglar.
++ SQL, ANSI standardinda bir bilgisayar dilidir.
++ SQL veritabanina karşi sorgulari çaliştirabilir.
++ SQL veritabanindaki verileri tekrar ele alabilir.
++ SQL veritabanina yeni bir kayit ekleyebilir.
++ SQL veritabanindan bir kayit silebilir.
++ SQL veritabanindaki bir kaydi guncelleyebilir.
++ SQL kolay ösrenilir
SQL standarttir, fakat ...
SQL, ANSI (American National Standards Institute - Amerikan Ulusal Standardlari Enstitusü) standardinda vertabanina ulasmak ve işlemek için kullanilan bir bilgisayar dilidir. SQL komutlari veritabanindaki verileri guncellemek, tekrar ele almak için kullanilir. SQL in kullanildigi veritabani programlari MS Access, MS SQL Server, DB2, Informix, Oracle, Sybase vs. Fakat SQL dilinin birçok farkli versiyonlari vardir, ama yinede önemli anahtarlar genelde aynidir yada cok benzerdir (örnegin SELECT, UPDATE, DELETE, INSERT, WHERE, ve digerleri).
SQL Veritabani tablolari
Veritabani bir yada birden fazla tablodan olusur. Her tablonun bir adi vardir. Bu tablolardaki kayitlar dizilerde (row) saklanir.
Örnesin "bilgi" tablosunda;
ad soyad il yas----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
yukardaki tablo üç kayida sahiptir, her bir kişi için bir tane, yani 3 satira (row) ve ayrica 4 adet kolona (column) sahiptir.
SQL sorgulari
SQL ile, veritabani sorgulanabilir ve sonculari alinabilir.
Örnek bir sorgu;
SELECT soyad FROM bilgi
Sonucu;
soyad-----
özgür
sözcü
yakan
SQL Veri işleme dili (DML - Data Manipulation Language)
SQL, sorgulari calistirmak için bir sözdizimidir. Fakat ayni zamanda kayitlari guncelleme, ekleme ve silmek içinde kullanilir.
Bu sorgu ve guncelleme komutlari, birlikte SQL in bir bolumu olan Veri işleme dilinin olusturuyor:
++ SELECT - veritabanindaki tablodan veri alir
++ UPDATE - veritabanindaki tablodaki veriyi gunceller
++ DELETE - veritabanindaki tablodan veri siler
++ INSERT INTO - veritabanindaki tabloya yeni bir veri ekler
SQL Veri tanimlama dili (DDL - Data Definition Language)
SQL in bir bolumu olan veri tanimlama dili, veritabani tablolarinda işlem yapmaya izin veren, tablolari olusturmak yada silmek için kullanilir. Ayrica index (arama anahtari) belirlemedede kullanilan bir dildir. Tablolar arasinda etkileşimi saglayabilir, aralarinda bir bas kurabilirsiniz.
En sik kulllanilan veri tanimlama sözdizimleri:
## CREATE TABLE - tablo yaratir
## ALTER TABLE - tabloyu degiştirir
## DROP TABLE - tabloyu siler
## CREATE INDEX - index (arama anahtari) olusturur
## DROP INDEX - indexi siler
şimdi bu sözdizimlerini biraz daha ayrintili anlatalim...
SELECT ifadesi
Bu ifade tablodan veri secmek için kullanilir.
ifadenin kurulusu;
SELECT kolonAd(lar)i FROM tabloAdi
örnek veri tabanimizda "bilgi" tablomuzda
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
verileri var diyelim
SELECT yas FROM bilgi
dedisimizde
yas
---
15
20
19
sonucu aliriz.
birden cok kolon secmek için ise;
SELECT ad,soyad FROM bilgi
dedisimzde
ad soyad
----- -------
ali özgür
veli sözcü
necmi yakan
sonucunu verir.
tum kolonlari secmek içinde;
SELECT * FROM bilgi
dememiz yeterlidir.
SELECT DISTINCT ifadesi
Bu ifade sadece farkli ifadeleri secmek için kullanilir.
ifadenin kurulusu;
SELECT DISTINCT kolonAd(lar)i FROM tabloAdi
örnek veritabanimizda "veriler" tablomuzda
firma urunNo
----- --------
CS 4586278
CW 7894331
CL 456
CH 45689
CW 789666879
verileri var diyelim
SELECT firma FROM veriler
dedisimizde sonuc;
firma-----
CS
CW
CL
CH
CW
olucaktir.
Ama ifadeye distinct eklersek, yani
SELECT DISTINCT firma FROM veriler
dersek sonuc;
firma
-----
CS
CW
CL
CH
seklinde olucaktir, yani tekrarlanan satir bilgileri alinmiyacaktir.
WHERE şarti
Bu şart, select ifadesi ile kullanilir.
şartin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE kolonAdi operator deger
Bu şartta kullanilabilir operatorler;
= eşit
<e> büyüktür
<k>= büyük yada esittir
<= kücük yada esittir
BETWEEN belli bir aralik arasinda
LIKE belli bir kalipla arama
NOT: bazi SQL versiyonlarinda <yerine> Dogru
SELECT * FROM ipList WHERE ipNumarasi=127.0.0.1 ---> Yanlis
SELECT * FROM ipList WHERE kullaniciAdi=’MMx’ ---> Dogru
SELECT * FROM ipList WHERE kullaniciAdi=MMx ---> Yanlis
LIKE operatorunun kullanilisi
Bu operatorle belli bir kalipta arama yapabilirsiniz.
ifadenin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE kolonAdi LIKE kalip
(%) işareti bilinmeyen yada eksik olan karakter için kullanilir.
Örnek SQL ifadeleri;
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’A%’
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’%x’
SELECT * FROM ipList WHERE kullaniciAdi LIKE ’%er%’
INSERT INTO ifadesi
Bu ifadeyi kullarak veritabanindaki bir tabloya bir satir ekleyebilirsiniz.
ifadenin kurulusu;
INSERT INTO tabloAdi (kolonBir,kolonIki,...) VALUES (kolonBir,kolonIki,...)
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
INSERT INTO bilgi VALUES (’veli’, ’sözcü’, ’trabzon’, ’20’)
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
olucaktir.
Tüm satirdaki bilgileri doldurmak yerine, sadece belli yerlere veri girmek için ne yapmak gerek derseniz, bir ornekle aciklayalim..
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
INSERT INTO Persons (ad, il) VALUES (’necmi’, ’sivas’)
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi sivas
olucaktir.
UPDATE ifadesi
Bu ifadeyi kullanarak veritabanindaki bir veriyi guncelleyebilirsiniz.
ifadenin kurulusu;
UPDATE tabloAdi SET kolonAdi = Yenideger WHERE kolonAdi = tanimlayiciDeger
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
UPDATE bilgi SET ad = ’osman’ WHERE soyad = ’yakan’
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
osman yakan sivas 19
olucaktir.
Birden fazla veriyi guncellemek isteyebiliriz, ohalde alttaki ornegi inceleyelim:
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
UPDATE bilgi SET il = ’hatay’, yas = ’13’ WHERE soyad = ’yakan’
dedisimizde sonucu;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan hatay 13
DELETE ifadesi
Bu ifadeyi kullanarak veritabanindaki bir satiri silebilirsiniz.
ifadenin kurulusu;
DELETE FROM tabloAdi WHERE kolonAdi = tanimlayiciDeger
veritabanimizda "bilgi" tablomuz olsun;
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
veli sözcü trabzon 20
necmi yakan sivas 19
DELETE FROM bilgi WHERE yas = ’20’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
necmi yakan sivas 19
Tablodaki tüm bilgileri silmek için şu ifadeleri kullanabilirsiniz:
DELETE FROM tabloAdi
DELETE * FROM tabloAdi
ORDER BY ifadesi
bu ifade ile sonuclari siralamak mumkundur.
Satirlari siralamak için ifade şu şekilde kurulur;
SELECT kolonAd(lar)i FROM tabloAdi ORDER BY referansKolonu
örnek veri tabanimizda "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
dedisimizde sonuc
ad soyad
----- -------
ali özgür
necmi yakan
veli sözcü
eger siralamayi tersine cevirmek istersek ifadenin sonuna DESC sözdizimini, sayilari kucukten buyuye siralamak içinde ASC sözdizimini ekliyoruz.
SELECT ad,soyad FROM bilgi ORDER BY ad DESC
dedisimizde sonuc
ad soyad
----- -------
veli sözcü
necmi yakan
ali özgür
AND ve OR operatorlerinin kullanilisi
AND ve OR operatorleri WHERE ifadesiyle birlikte, birden cok durumu birleştirmek için kullanilir. AND operatoru eger TÜM durumlar dogru ise ilgili satiri gosterir. OR operatoru ise durumlardan bir tanesi bile dogru olsa bile ilgili satiri gosterir.
örnekleri "bilgi" adli 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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
SELECT * FROM bilgi WHERE ad=’alp’ OR soyad=’özgür’
dedisimizde 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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
alp özgür ankara 12
IN operatorunun kullanilisi
Bu operator, bir degeri tam biliyorsak ve bunu goruntulemek istiyorsak kullanabiliriz.
ifadenin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE colonAdi IN (degerBir,degerIki,...)
örnek veritabanimizda "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 kullanilisi
Bu operator yardimi ile iki deger arasindaki veriyi secebiliriz, bu degerler numara,yazi yada tarih olabilir.
ifadenin kurulusu;
SELECT kolonAdi FROM tabloAdi WHERE colonAdi BETWEEN degerBir AND degerIki
örnek veritabanimizda "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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
veli sözcü trabzon 20
necmi yakan sivas 19
Yanliz BETWEEN operatoru veritabani 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 nasil davrandigini veritabaninizda denemeniz önerilir.
Birde bu aralikta olmayanlarida 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’
dedisimizde sonuc
ad soyad il yas
----- ------- ---- -----
ali özgür ankara 15
osman yakan van 33
alp özgür ankara 12