Giriş
SQL içinde, tek tablo içinde çeşitli kriterlere göre bilgi sorgulama, bilgiyi sıralı olarak elde eGiriş
SQL içinde, tek tablo içinde çeşitli kriterlere göre bilgi sorgulama, bilgiyi sıralı olarak elde etme, bilgi özetleme, ortalama vb. gibi matematiksel işlemleri gerçekleştirmeyi sağlayan komut ve fonksiyonlar vardır. Ayrıca aynı tipte işlemleri birden çok tabloyu birlikte ele alarak gerçekleştirmekte mümkündür. Şimdi sırasıyla Sql komutlarını inceleyelim.
Select Komutu
Tek tablodan gerekli bilgileri elde etmek için sorgulama yapabilecek Sql komutudur.
Örnek1: SELECT * FROM liste;
Yukardaki komut ile liste adlı tablodaki bütün bilgileri koşulsuz olarak listelemiş olduk. Buradaki * işareti liste adlı tablodaki bütün sütunları listelemesini sağlar.
Örnek2: SELECT adi, soyadi, adresi, telefonu FROM liste;
Bu örnektede liste adlı tablodan; adi, soyadi, adresi, telefonu adlı sütunları ve bu sutunların içerdiği bilgileri listelemiş olduk.
Not: SELECT sözcüğünden sonra alan adları, FROM sözcüğünden sonra tablo ismi belirtilmektedir.
Distinct Komutu
Birbirinin aynı olan satırların, listeleme esnasında bir defa yazılmasını sağlar.
Örnek: SELECT DISTINCT satis_no FROM liste (Burada satış noları aynı olanlardan bir tanesi listelenir.)
Order By Komutu
Tablodan listelenecek olan bilgilerin bir sütun adına göre (Örneğin ada göre vb.) sıralanmasını sağlayan komuttur. Select komutundan sonra yazılır.
Örnek1: ad, soyad, fiyat süyunlarını küçükten büyüğe göre sıralatalım
SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat ASC
Not: ASC (Ascending) bilgileri küçükten büyüğe sıralar. DESC (descending) komutu ise büyükten küçüğe sıralar. (Zden Aya doğru)
ad
soyad
birim_fiyat
ali
sahin
1250
adem
kök
1550
ali
esen
1755
Örnek2: SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat DESC;
ad
soyad
birim_fiyat
ali
esen
1755
adem
kök
1550
ali
sahin
1250
Bir tablo içinde verilerin aynı anda birden çok alana göre sıralamak ta mümkündür.
Örnek3: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad , birim_fiyat;
Not: Burada iki alana göre sıralama işlemi yaptık. ad alanındaki isimleri Adan Zye; birim_fiyat alandaki değerleride artan değere göre sıralayacak.
Ad
soyad
birim_fiyat
Ahmet
bölükbasi
1100
cem
kartal
1600
serhat
cosar
1925
Örnek4: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad, soyad ASC, birim_fiyat DESC;
Not: Yukardaki örnekte ad, soyad alanlarını artan değerde;birim_fiyat alanını azalan değerde sıraladık.
Where Komutu (Koşula Bağlı Olarak Listeleme)
Select komutu ile bir tablonun satırları içinde sadece verilen koşulu sağlayanlar da listelenebilir.
Örnek1: SELECT * FROM liste WHERE birim_fiyat > 1250
Bu örnekte liste adlı tabloda birim_fiyat adlı alanındaki bilgilerden 1250′den büyük olanları sıralamış olduk.
SQLde Karşılaştırma Operatörleri
Operatör
Anlamı
<
. . . den küçük
>
. . . den daha büyük
=
Eşit
<=
Küçük veya eşit
>=
Büyük veya eşit
<>
Eşit değil
!=
Eşit değil
Veri Tiplerine Göre Sorgulamalar
Nümerik Veri Tipleri
Nümerik Veri Tipi; Programla dillerinden de bildiğimiz, Smallint, integer, decimal, float gibi veri tiplerini kapsar.
Örnek: SELECT * FROM liste WHERE birim_fiyat >=8000
Burada liste tablosundaki bütün alanlarda birim_fiyat 8000 ve üzerindeki değerler listelenir.
Char (Karakter) Veri Tipleri
Karakter türündeki veri tipleri çift tırnak ( ) veya tek tırnak ( ) sembolleri içinde yazılırlar.
Örnek1: Adı Halil olan personele ait verileri listelemek
SELECT * FROM liste WHERE ad = Halil ;
Sonuçta; aşağıdaki liste çıkar
ad
soyad
birim_fiyat
Halil
ozturkci
1100
Halil
akdemir
1600
Halil
aktas
1925
Tarih Veri Tipi
Tarih tipi veri tipleri { } sembolleri içinde yazılmalıdır.
Örnek: SELECT * FROM liste WHERE dog_tarih < {12/31/80 };
Burada doğum tarihi 1980′den küçük olanları listeleyeceğiz. Sonuçta;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
1100
07/03/76
Halil
ozturkci
1600
12/27/77
Ahmet
aktas
1925
01/15/79
Mantıksal Veri Tipi
Mantıksal veriler için iki değer söz konusudur. Doğru (true , . T.) , Yanlış (false, . F.) ile simgelenir.
Örnek: SELECT * FROM liste WHERE cins=. T. ;
Örnekte true ile kadınları; False ile Erkekleri kodlarsak yukarıdaki sorgu kadın olanları listeleyecektir.
Birden Fazla Koşula Bağlı Sorgular (And, Or, Not vb.)
And, Or, Not mantıksal Operatörleri ile birden çok koşulu; birleşik koşullu olarak listeleyebiliriz.
Örnek1: SELECT * FROM liste WHERE ad = Ali AND birim_fiyat > 5000 ;
Bu sorgulamada adı Ali ve birim_fiyatı 5000′den büyük olanları listeleyecektir. Aşağıdaki tabloyu incelediğimizde iki koşulunda yerine geldiğini görüyoruz.
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ali
korkmaz
9800
02/19/79
Örnek2: SELECT * FROM liste WHERE ad = Ali OR birim_fiyat > 5000 ;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ahmet
bolukbasi
8000
02/19/70
Dikkat edilirse Or mantıksal Operatöründe bir koşul gerçekleşmesi yeterlidir.
Örnek3: SELECT * FROM liste WHERE dog_tarih > = { 01/01/76 } AND ad= Halil OR soyad= sahin ;
Örnek4: SELECT * FROM liste WHERE NOT ( ad= Ali OR Halil ) AND dog_tarih >= { 01 / 01 / 1976 } ;
IN Operatörü
IN Operatörü ile komutlarımız daha kısa olur. Aşağıdaki Örneği inceleyelim.
Örnek: SELECT * FROM liste WHERE birim_fiyat = 1500 OR birim_fiyat = 2500 OR birim_fiyat = 3000;
Bu Örneği birde IN Operatörünü kullanarak yaparsak;
SELECT * FROM liste WHERE NOT birim_fiyat IN (1500 , 2500 , 3000 );
Between Komutu
Between Komutu ile belli bir aralığı sorgulayabiliriz.
Örnek: SELECT * FROM liste WHERE birim_fiyat BETWEEN 1500 AND 5000;
Bu Örneği daha önceki öğrendiklerimizle şöylede yapabilirdik.
SELECT * FROM liste WHERE birim_fiyat > = 1500 AND birim_fiyat < = 5000;
Like Komutu
Bu komut ile Karakter türü bilgi içinde arama yapabiliriz.
Örnek1: SELECT * FROM liste WHERE ad LIKE Mel;
Burada ilk üç harfi Mel ile başlayan bütün adlar listelenir.
ad
soyad
birim_fiyat
dog_tarih
Melih
aldemir
5500
07/03/76
Melek
bolukbasi
8000
02/19/70
Örnek2: Adres kısmında bir kelimenin aranarak listelenmesi
Adres kısmında Fatih yazanları listeletelim.
SELECT * FROM liste WHERE adres LIKE % Fatih % ;
tme, bilgi özetleme, ortalama vb. gibi matematiksel işlemleri gerçekleştirmeyi sağlayan komut ve fonksiyonlar vardır. Ayrıca aynı tipte işlemleri birden çok tabloyu birlikte ele alarak gerçekleştirmekte mümkündür. Şimdi sırasıyla Sql komutlarını inceleyelim.
Select Komutu
Tek tablodan gerekli bilgileri elde etmek için sorgulama yapabilecek Sql komutudur.
Örnek1: SELECT * FROM liste;
Yukardaki komut ile liste adlı tablodaki bütün bilgileri koşulsuz olarak listelemiş olduk. Buradaki * işareti liste adlı tablodaki bütün sütunları listelemesini sağlar.
Örnek2: SELECT adi, soyadi, adresi, telefonu FROM liste;
Bu örnektede liste adlı tablodan; adi, soyadi, adresi, telefonu adlı sütunları ve bu sutunların içerdiği bilgileri listelemiş olduk.
Not: SELECT sözcüğünden sonra alan adları, FROM sözcüğünden sonra tablo ismi belirtilmektedir.
Distinct Komutu
Birbirinin aynı olan satırların, listeleme esnasında bir defa yazılmasını sağlar.
Örnek: SELECT DISTINCT satis_no FROM liste (Burada satış noları aynı olanlardan bir tanesi listelenir.)
Order By Komutu
Tablodan listelenecek olan bilgilerin bir sütun adına göre (Örneğin ada göre vb.) sıralanmasını sağlayan komuttur. Select komutundan sonra yazılır.
Örnek1: ad, soyad, fiyat süyunlarını küçükten büyüğe göre sıralatalım
SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat ASC
Not: ASC (Ascending) bilgileri küçükten büyüğe sıralar. DESC (descending) komutu ise büyükten küçüğe sıralar. (Zden Aya doğru)
ad
soyad
birim_fiyat
ali
sahin
1250
adem
kök
1550
ali
esen
1755
Örnek2: SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat DESC;
ad
soyad
birim_fiyat
ali
esen
1755
adem
kök
1550
ali
sahin
1250
Bir tablo içinde verilerin aynı anda birden çok alana göre sıralamak ta mümkündür.
Örnek3: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad , birim_fiyat;
Not: Burada iki alana göre sıralama işlemi yaptık. ad alanındaki isimleri Adan Zye; birim_fiyat alandaki değerleride artan değere göre sıralayacak.
Ad
soyad
birim_fiyat
Ahmet
bölükbasi
1100
cem
kartal
1600
serhat
cosar
1925
Örnek4: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad, soyad ASC, birim_fiyat DESC;
Not: Yukardaki örnekte ad, soyad alanlarını artan değerde;birim_fiyat alanını azalan değerde sıraladık.
Where Komutu (Koşula Bağlı Olarak Listeleme)
Select komutu ile bir tablonun satırları içinde sadece verilen koşulu sağlayanlar da listelenebilir.
Örnek1: SELECT * FROM liste WHERE birim_fiyat > 1250
Bu örnekte liste adlı tabloda birim_fiyat adlı alanındaki bilgilerden 1250′den büyük olanları sıralamış olduk.
SQLde Karşılaştırma Operatörleri
Operatör
Anlamı
<
. . . den küçük
>
. . . den daha büyük
=
Eşit
<=
Küçük veya eşit
>=
Büyük veya eşit
<>
Eşit değil
!=
Eşit değil
Veri Tiplerine Göre Sorgulamalar
Nümerik Veri Tipleri
Nümerik Veri Tipi; Programla dillerinden de bildiğimiz, Smallint, integer, decimal, float gibi veri tiplerini kapsar.
Örnek: SELECT * FROM liste WHERE birim_fiyat >=8000
Burada liste tablosundaki bütün alanlarda birim_fiyat 8000 ve üzerindeki değerler listelenir.
Char (Karakter) Veri Tipleri
Karakter türündeki veri tipleri çift tırnak ( ) veya tek tırnak ( ) sembolleri içinde yazılırlar.
Örnek1: Adı Halil olan personele ait verileri listelemek
SELECT * FROM liste WHERE ad = Halil ;
Sonuçta; aşağıdaki liste çıkar
ad
soyad
birim_fiyat
Halil
ozturkci
1100
Halil
akdemir
1600
Halil
aktas
1925
Tarih Veri Tipi
Tarih tipi veri tipleri { } sembolleri içinde yazılmalıdır.
Örnek: SELECT * FROM liste WHERE dog_tarih < {12/31/80 };
Burada doğum tarihi 1980′den küçük olanları listeleyeceğiz. Sonuçta;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
1100
07/03/76
Halil
ozturkci
1600
12/27/77
Ahmet
aktas
1925
01/15/79
Mantıksal Veri Tipi
Mantıksal veriler için iki değer söz konusudur. Doğru (true , . T.) , Yanlış (false, . F.) ile simgelenir.
Örnek: SELECT * FROM liste WHERE cins=. T. ;
Örnekte true ile kadınları; False ile Erkekleri kodlarsak yukarıdaki sorgu kadın olanları listeleyecektir.
Birden Fazla Koşula Bağlı Sorgular (And, Or, Not vb.)
And, Or, Not mantıksal Operatörleri ile birden çok koşulu; birleşik koşullu olarak listeleyebiliriz.
Örnek1: SELECT * FROM liste WHERE ad = Ali AND birim_fiyat > 5000 ;
Bu sorgulamada adı Ali ve birim_fiyatı 5000′den büyük olanları listeleyecektir. Aşağıdaki tabloyu incelediğimizde iki koşulunda yerine geldiğini görüyoruz.
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ali
korkmaz
9800
02/19/79
Örnek2: SELECT * FROM liste WHERE ad = Ali OR birim_fiyat > 5000 ;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ahmet
bolukbasi
8000
02/19/70
Dikkat edilirse Or mantıksal Operatöründe bir koşul gerçekleşmesi yeterlidir.
Örnek3: SELECT * FROM liste WHERE dog_tarih > = { 01/01/76 } AND ad= Halil OR soyad= sahin ;
Örnek4: SELECT * FROM liste WHERE NOT ( ad= Ali OR Halil ) AND dog_tarih >= { 01 / 01 / 1976 } ;
IN Operatörü
IN Operatörü ile komutlarımız daha kısa olur. Aşağıdaki Örneği inceleyelim.
Örnek: SELECT * FROM liste WHERE birim_fiyat = 1500 OR birim_fiyat = 2500 OR birim_fiyat = 3000;
Bu Örneği birde IN Operatörünü kullanarak yaparsak;
SELECT * FROM liste WHERE NOT birim_fiyat IN (1500 , 2500 , 3000 );
Between Komutu
Between Komutu ile belli bir aralığı sorgulayabiliriz.
Örnek: SELECT * FROM liste WHERE birim_fiyat BETWEEN 1500 AND 5000;
Bu Örneği daha önceki öğrendiklerimizle şöylede yapabilirdik.
SELECT * FROM liste WHERE birim_fiyat > = 1500 AND birim_fiyat < = 5000;
Like Komutu
Bu komut ile Karakter türü bilgi içinde arama yapabiliriz.
Örnek1: SELECT * FROM liste WHERE ad LIKE Mel;
Burada ilk üç harfi Mel ile başlayan bütün adlar listelenir.
ad
soyad
birim_fiyat
dog_tarih
Melih
aldemir
5500
07/03/76
Melek
bolukbasi
8000
02/19/70
Örnek2: Adres kısmında bir kelimenin aranarak listelenmesi
Adres kısmında Fatih yazanları listeletelim.
SELECT * FROM liste WHERE adres LIKE % Fatih % ;
SQL içinde, tek tablo içinde çeşitli kriterlere göre bilgi sorgulama, bilgiyi sıralı olarak elde eGiriş
SQL içinde, tek tablo içinde çeşitli kriterlere göre bilgi sorgulama, bilgiyi sıralı olarak elde etme, bilgi özetleme, ortalama vb. gibi matematiksel işlemleri gerçekleştirmeyi sağlayan komut ve fonksiyonlar vardır. Ayrıca aynı tipte işlemleri birden çok tabloyu birlikte ele alarak gerçekleştirmekte mümkündür. Şimdi sırasıyla Sql komutlarını inceleyelim.
Select Komutu
Tek tablodan gerekli bilgileri elde etmek için sorgulama yapabilecek Sql komutudur.
Örnek1: SELECT * FROM liste;
Yukardaki komut ile liste adlı tablodaki bütün bilgileri koşulsuz olarak listelemiş olduk. Buradaki * işareti liste adlı tablodaki bütün sütunları listelemesini sağlar.
Örnek2: SELECT adi, soyadi, adresi, telefonu FROM liste;
Bu örnektede liste adlı tablodan; adi, soyadi, adresi, telefonu adlı sütunları ve bu sutunların içerdiği bilgileri listelemiş olduk.
Not: SELECT sözcüğünden sonra alan adları, FROM sözcüğünden sonra tablo ismi belirtilmektedir.
Distinct Komutu
Birbirinin aynı olan satırların, listeleme esnasında bir defa yazılmasını sağlar.
Örnek: SELECT DISTINCT satis_no FROM liste (Burada satış noları aynı olanlardan bir tanesi listelenir.)
Order By Komutu
Tablodan listelenecek olan bilgilerin bir sütun adına göre (Örneğin ada göre vb.) sıralanmasını sağlayan komuttur. Select komutundan sonra yazılır.
Örnek1: ad, soyad, fiyat süyunlarını küçükten büyüğe göre sıralatalım
SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat ASC
Not: ASC (Ascending) bilgileri küçükten büyüğe sıralar. DESC (descending) komutu ise büyükten küçüğe sıralar. (Zden Aya doğru)
ad
soyad
birim_fiyat
ali
sahin
1250
adem
kök
1550
ali
esen
1755
Örnek2: SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat DESC;
ad
soyad
birim_fiyat
ali
esen
1755
adem
kök
1550
ali
sahin
1250
Bir tablo içinde verilerin aynı anda birden çok alana göre sıralamak ta mümkündür.
Örnek3: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad , birim_fiyat;
Not: Burada iki alana göre sıralama işlemi yaptık. ad alanındaki isimleri Adan Zye; birim_fiyat alandaki değerleride artan değere göre sıralayacak.
Ad
soyad
birim_fiyat
Ahmet
bölükbasi
1100
cem
kartal
1600
serhat
cosar
1925
Örnek4: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad, soyad ASC, birim_fiyat DESC;
Not: Yukardaki örnekte ad, soyad alanlarını artan değerde;birim_fiyat alanını azalan değerde sıraladık.
Where Komutu (Koşula Bağlı Olarak Listeleme)
Select komutu ile bir tablonun satırları içinde sadece verilen koşulu sağlayanlar da listelenebilir.
Örnek1: SELECT * FROM liste WHERE birim_fiyat > 1250
Bu örnekte liste adlı tabloda birim_fiyat adlı alanındaki bilgilerden 1250′den büyük olanları sıralamış olduk.
SQLde Karşılaştırma Operatörleri
Operatör
Anlamı
<
. . . den küçük
>
. . . den daha büyük
=
Eşit
<=
Küçük veya eşit
>=
Büyük veya eşit
<>
Eşit değil
!=
Eşit değil
Veri Tiplerine Göre Sorgulamalar
Nümerik Veri Tipleri
Nümerik Veri Tipi; Programla dillerinden de bildiğimiz, Smallint, integer, decimal, float gibi veri tiplerini kapsar.
Örnek: SELECT * FROM liste WHERE birim_fiyat >=8000
Burada liste tablosundaki bütün alanlarda birim_fiyat 8000 ve üzerindeki değerler listelenir.
Char (Karakter) Veri Tipleri
Karakter türündeki veri tipleri çift tırnak ( ) veya tek tırnak ( ) sembolleri içinde yazılırlar.
Örnek1: Adı Halil olan personele ait verileri listelemek
SELECT * FROM liste WHERE ad = Halil ;
Sonuçta; aşağıdaki liste çıkar
ad
soyad
birim_fiyat
Halil
ozturkci
1100
Halil
akdemir
1600
Halil
aktas
1925
Tarih Veri Tipi
Tarih tipi veri tipleri { } sembolleri içinde yazılmalıdır.
Örnek: SELECT * FROM liste WHERE dog_tarih < {12/31/80 };
Burada doğum tarihi 1980′den küçük olanları listeleyeceğiz. Sonuçta;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
1100
07/03/76
Halil
ozturkci
1600
12/27/77
Ahmet
aktas
1925
01/15/79
Mantıksal Veri Tipi
Mantıksal veriler için iki değer söz konusudur. Doğru (true , . T.) , Yanlış (false, . F.) ile simgelenir.
Örnek: SELECT * FROM liste WHERE cins=. T. ;
Örnekte true ile kadınları; False ile Erkekleri kodlarsak yukarıdaki sorgu kadın olanları listeleyecektir.
Birden Fazla Koşula Bağlı Sorgular (And, Or, Not vb.)
And, Or, Not mantıksal Operatörleri ile birden çok koşulu; birleşik koşullu olarak listeleyebiliriz.
Örnek1: SELECT * FROM liste WHERE ad = Ali AND birim_fiyat > 5000 ;
Bu sorgulamada adı Ali ve birim_fiyatı 5000′den büyük olanları listeleyecektir. Aşağıdaki tabloyu incelediğimizde iki koşulunda yerine geldiğini görüyoruz.
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ali
korkmaz
9800
02/19/79
Örnek2: SELECT * FROM liste WHERE ad = Ali OR birim_fiyat > 5000 ;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ahmet
bolukbasi
8000
02/19/70
Dikkat edilirse Or mantıksal Operatöründe bir koşul gerçekleşmesi yeterlidir.
Örnek3: SELECT * FROM liste WHERE dog_tarih > = { 01/01/76 } AND ad= Halil OR soyad= sahin ;
Örnek4: SELECT * FROM liste WHERE NOT ( ad= Ali OR Halil ) AND dog_tarih >= { 01 / 01 / 1976 } ;
IN Operatörü
IN Operatörü ile komutlarımız daha kısa olur. Aşağıdaki Örneği inceleyelim.
Örnek: SELECT * FROM liste WHERE birim_fiyat = 1500 OR birim_fiyat = 2500 OR birim_fiyat = 3000;
Bu Örneği birde IN Operatörünü kullanarak yaparsak;
SELECT * FROM liste WHERE NOT birim_fiyat IN (1500 , 2500 , 3000 );
Between Komutu
Between Komutu ile belli bir aralığı sorgulayabiliriz.
Örnek: SELECT * FROM liste WHERE birim_fiyat BETWEEN 1500 AND 5000;
Bu Örneği daha önceki öğrendiklerimizle şöylede yapabilirdik.
SELECT * FROM liste WHERE birim_fiyat > = 1500 AND birim_fiyat < = 5000;
Like Komutu
Bu komut ile Karakter türü bilgi içinde arama yapabiliriz.
Örnek1: SELECT * FROM liste WHERE ad LIKE Mel;
Burada ilk üç harfi Mel ile başlayan bütün adlar listelenir.
ad
soyad
birim_fiyat
dog_tarih
Melih
aldemir
5500
07/03/76
Melek
bolukbasi
8000
02/19/70
Örnek2: Adres kısmında bir kelimenin aranarak listelenmesi
Adres kısmında Fatih yazanları listeletelim.
SELECT * FROM liste WHERE adres LIKE % Fatih % ;
tme, bilgi özetleme, ortalama vb. gibi matematiksel işlemleri gerçekleştirmeyi sağlayan komut ve fonksiyonlar vardır. Ayrıca aynı tipte işlemleri birden çok tabloyu birlikte ele alarak gerçekleştirmekte mümkündür. Şimdi sırasıyla Sql komutlarını inceleyelim.
Select Komutu
Tek tablodan gerekli bilgileri elde etmek için sorgulama yapabilecek Sql komutudur.
Örnek1: SELECT * FROM liste;
Yukardaki komut ile liste adlı tablodaki bütün bilgileri koşulsuz olarak listelemiş olduk. Buradaki * işareti liste adlı tablodaki bütün sütunları listelemesini sağlar.
Örnek2: SELECT adi, soyadi, adresi, telefonu FROM liste;
Bu örnektede liste adlı tablodan; adi, soyadi, adresi, telefonu adlı sütunları ve bu sutunların içerdiği bilgileri listelemiş olduk.
Not: SELECT sözcüğünden sonra alan adları, FROM sözcüğünden sonra tablo ismi belirtilmektedir.
Distinct Komutu
Birbirinin aynı olan satırların, listeleme esnasında bir defa yazılmasını sağlar.
Örnek: SELECT DISTINCT satis_no FROM liste (Burada satış noları aynı olanlardan bir tanesi listelenir.)
Order By Komutu
Tablodan listelenecek olan bilgilerin bir sütun adına göre (Örneğin ada göre vb.) sıralanmasını sağlayan komuttur. Select komutundan sonra yazılır.
Örnek1: ad, soyad, fiyat süyunlarını küçükten büyüğe göre sıralatalım
SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat ASC
Not: ASC (Ascending) bilgileri küçükten büyüğe sıralar. DESC (descending) komutu ise büyükten küçüğe sıralar. (Zden Aya doğru)
ad
soyad
birim_fiyat
ali
sahin
1250
adem
kök
1550
ali
esen
1755
Örnek2: SELECT ad, soyad, birim_fiyat FROM liste ORDER BY birim_fiyat DESC;
ad
soyad
birim_fiyat
ali
esen
1755
adem
kök
1550
ali
sahin
1250
Bir tablo içinde verilerin aynı anda birden çok alana göre sıralamak ta mümkündür.
Örnek3: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad , birim_fiyat;
Not: Burada iki alana göre sıralama işlemi yaptık. ad alanındaki isimleri Adan Zye; birim_fiyat alandaki değerleride artan değere göre sıralayacak.
Ad
soyad
birim_fiyat
Ahmet
bölükbasi
1100
cem
kartal
1600
serhat
cosar
1925
Örnek4: SELECT ad, soyad, birim_fiyat FROM ORDER BY ad, soyad ASC, birim_fiyat DESC;
Not: Yukardaki örnekte ad, soyad alanlarını artan değerde;birim_fiyat alanını azalan değerde sıraladık.
Where Komutu (Koşula Bağlı Olarak Listeleme)
Select komutu ile bir tablonun satırları içinde sadece verilen koşulu sağlayanlar da listelenebilir.
Örnek1: SELECT * FROM liste WHERE birim_fiyat > 1250
Bu örnekte liste adlı tabloda birim_fiyat adlı alanındaki bilgilerden 1250′den büyük olanları sıralamış olduk.
SQLde Karşılaştırma Operatörleri
Operatör
Anlamı
<
. . . den küçük
>
. . . den daha büyük
=
Eşit
<=
Küçük veya eşit
>=
Büyük veya eşit
<>
Eşit değil
!=
Eşit değil
Veri Tiplerine Göre Sorgulamalar
Nümerik Veri Tipleri
Nümerik Veri Tipi; Programla dillerinden de bildiğimiz, Smallint, integer, decimal, float gibi veri tiplerini kapsar.
Örnek: SELECT * FROM liste WHERE birim_fiyat >=8000
Burada liste tablosundaki bütün alanlarda birim_fiyat 8000 ve üzerindeki değerler listelenir.
Char (Karakter) Veri Tipleri
Karakter türündeki veri tipleri çift tırnak ( ) veya tek tırnak ( ) sembolleri içinde yazılırlar.
Örnek1: Adı Halil olan personele ait verileri listelemek
SELECT * FROM liste WHERE ad = Halil ;
Sonuçta; aşağıdaki liste çıkar
ad
soyad
birim_fiyat
Halil
ozturkci
1100
Halil
akdemir
1600
Halil
aktas
1925
Tarih Veri Tipi
Tarih tipi veri tipleri { } sembolleri içinde yazılmalıdır.
Örnek: SELECT * FROM liste WHERE dog_tarih < {12/31/80 };
Burada doğum tarihi 1980′den küçük olanları listeleyeceğiz. Sonuçta;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
1100
07/03/76
Halil
ozturkci
1600
12/27/77
Ahmet
aktas
1925
01/15/79
Mantıksal Veri Tipi
Mantıksal veriler için iki değer söz konusudur. Doğru (true , . T.) , Yanlış (false, . F.) ile simgelenir.
Örnek: SELECT * FROM liste WHERE cins=. T. ;
Örnekte true ile kadınları; False ile Erkekleri kodlarsak yukarıdaki sorgu kadın olanları listeleyecektir.
Birden Fazla Koşula Bağlı Sorgular (And, Or, Not vb.)
And, Or, Not mantıksal Operatörleri ile birden çok koşulu; birleşik koşullu olarak listeleyebiliriz.
Örnek1: SELECT * FROM liste WHERE ad = Ali AND birim_fiyat > 5000 ;
Bu sorgulamada adı Ali ve birim_fiyatı 5000′den büyük olanları listeleyecektir. Aşağıdaki tabloyu incelediğimizde iki koşulunda yerine geldiğini görüyoruz.
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ali
korkmaz
9800
02/19/79
Örnek2: SELECT * FROM liste WHERE ad = Ali OR birim_fiyat > 5000 ;
ad
soyad
birim_fiyat
dog_tarih
Ali
sahin
5500
07/03/76
Ahmet
bolukbasi
8000
02/19/70
Dikkat edilirse Or mantıksal Operatöründe bir koşul gerçekleşmesi yeterlidir.
Örnek3: SELECT * FROM liste WHERE dog_tarih > = { 01/01/76 } AND ad= Halil OR soyad= sahin ;
Örnek4: SELECT * FROM liste WHERE NOT ( ad= Ali OR Halil ) AND dog_tarih >= { 01 / 01 / 1976 } ;
IN Operatörü
IN Operatörü ile komutlarımız daha kısa olur. Aşağıdaki Örneği inceleyelim.
Örnek: SELECT * FROM liste WHERE birim_fiyat = 1500 OR birim_fiyat = 2500 OR birim_fiyat = 3000;
Bu Örneği birde IN Operatörünü kullanarak yaparsak;
SELECT * FROM liste WHERE NOT birim_fiyat IN (1500 , 2500 , 3000 );
Between Komutu
Between Komutu ile belli bir aralığı sorgulayabiliriz.
Örnek: SELECT * FROM liste WHERE birim_fiyat BETWEEN 1500 AND 5000;
Bu Örneği daha önceki öğrendiklerimizle şöylede yapabilirdik.
SELECT * FROM liste WHERE birim_fiyat > = 1500 AND birim_fiyat < = 5000;
Like Komutu
Bu komut ile Karakter türü bilgi içinde arama yapabiliriz.
Örnek1: SELECT * FROM liste WHERE ad LIKE Mel;
Burada ilk üç harfi Mel ile başlayan bütün adlar listelenir.
ad
soyad
birim_fiyat
dog_tarih
Melih
aldemir
5500
07/03/76
Melek
bolukbasi
8000
02/19/70
Örnek2: Adres kısmında bir kelimenin aranarak listelenmesi
Adres kısmında Fatih yazanları listeletelim.
SELECT * FROM liste WHERE adres LIKE % Fatih % ;
