İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

TEK TABLODAN SORGULAMALAR

SELECTSEÇ
FROMGELİŞ

ÖRNEK: 1) Bütün bilgileri personel tablosundan koşulsuz olarak listele
SELECT *
FROM   personel

ÖRNEK:2) Personel tablosundan SEÇ komutuyla istenen sütun adlarını belirt.
SELECT sicil,sosy_g_no,ad,soyad,dog_tar,adres,cins,brüt,böl_no,yön_s_g_n
FROM  personel;

ÖRNEK:3)Personel tablosundan istenen sütün başlıklarını listele.
SELECT sicil,ad,soyad,brüt 
FROM  personel;

DISTINCT - TEKRARSIZ

TANIM:SQL'de tablo içinde birbirinin aynı datalar bulunabilir.Aynı satırların listeleme esnasında bir kez yazılması

ÖRNEK: 1)Par _sat dosyasından sat_no’ları tekrarsız olarak listelenecektir.
SELECT DISTINCT sat_no
FROM  par_sat;

i)TABLO BİLGİLERİNİN SIRALANMIŞ OLARAK LİSTELENMESİ

ORDER BY - SIRALA

TANIM:Tablodaki sütunlardan ,belirli bir sütuna göre listelemek için SEÇ komutuna ,SIRALA eklenir.

ÖRNEK: 1)Personel dosyasından,sicil,ad,soyad,brüt sütunlarını seç ve brüt(maaşa)göre büyükten küçüğe sırala.
SELECT  sicil,ad,soyad,brüt
FROM  personel
ORDER BY brüt ASC;

İİ)BİRDEN ÇOK ALANA GÖRE SIRALAMA

TANIM:Bir tablo içinde ,birden fazla sütundan aynı anda sıralamak için kullanılır.

ÖRNEK 1)Personel dosyasından seçilen sütunlarını aynı anda hem ad,hem de otomatik olarak sıralar.
SELECT sicil,ad,soyad,brüt 
FROM personel 
ORDER BY ad,brüt;

ÖRNEK 2)Personel tablosundan seçili sütunları öncelik adda olmak üzere (B-K) adı bozmadan soyadı (K-B) sıralı listeler.
SELECT sicil,ad,soyad,brüt
FROM  personel
ORDER BY ad ASC,soyad DESC,brüt ASC;                                                          

veya;

SELECT sicil,ad,soyad,brüt
FROM personel 
ORDER BY ad,soyad DESC,brüt;

DESC'li durumda yanına yazıp belirtilir,yazılmazsa ASC direct kabul edilir.

KOŞULA BAĞLI OLARAK LİSTELEME:

WHERE - OLAN

TANIM:Verilen koşulu sağlayanlar listelenir.İki veri birbiriyle karşılaştırılmaktadır. Karşılaştırılan verilerin türü aynı olmalıdır.

SELECT *
FROM  personel
WHERE brüt  > 5000000;

KARŞILAŞTIRMA OPERATÖRLERİ:

OPERATÖRANLAMI
<...den daha 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
!<...den küçük değil
!>...den büyük değil

ÇEŞİTLİ VERİ TİPLERİ İÇİN BASİT SORGULAMALAR:

i)NÜMERİK VERİ TİPLERİ:

ÖRNEK: Maaşı 8000000TL’den fazla olmayan personeli listele.
SELECT *
FROM   personel
WHERE   brüt  <= 8000000;

ii)KARAKTER VERİ TİPLERİ (CHAR):

Karakter çift veya tek tırnak ile gösterilir.

ÖRNEK: Adı Ali olmayan personele ait kayıtları listele.
SELECT  *
FROM  personel
WHERE  ad <> "Ali";

İİİ)TARİH VERİ TİPİ:

Tarih veri tipleri { } sembolleri içinde yazılır.

ÖRNEK: Hangi personelin doğum tarihi 1960 yılından daha öncedir?
SELECT  *
FROM   personel
WHERE  dog_tar <={12/31/59};

MANTIKSAL (LOJİK) VERİ TİPİ:

Mantıksal veriler için mümkün olabilen sadece iki değer sözkonusudur.DOĞRU D(TRUE T) , YANLIŞ Y (FALSE F) ile simgelenir.

ÖRNEK: Personel tablosunda personelin cinsiyetini belirten cins adlı alan mantıksal(logical) olarak tanımlanmıştır.Cinsiyeti erkek olanları D,kadın olanları y ile tanımlarsak erkek olanları listele.
SELECT  *
FROM  personel
WHERE cins  = .T.;

BİRDEN ÇOK KOŞULA DAYALI SORGULAMALAR: (NOT,AND,OR)

TANIM:Mantıksal operatörlerin yardımı ile birden çok koşulun gerçekleştirmesine bağlı olarak ifade edilebilecek (karmaşık yada birleşik koşullu listelemeleri gerçekleştirilmektedir.)

AND - VE

ÖRNEK:Maaşı 5000000’dan fazla olan ve cinsiyeti erkek olan personelin listelenmesi istenir yani iki koşul verilmektedir ve ikisininde olması istenir
SELECT  *
FROM personel
WHERE  brüt >5000000 AND cins =.T.;

NOT - DEĞİL, OR - VEYA

ÖRNEKLER:

i)Doğum tarihi 1960’dan önce olan maaşı 6000000 – 10000000 arasındaki bayan personelin listele.
SELECT  *
FROM dog_tar <  {01/01/60} AND
brüt > = 6000000 AND brüt < =10000000
AND cins = .F.;                                                

ii)Satış bölümüyle muhasebe bölümündekiler kimlerdir? (Satış bölümünün böl_no’sunun 1 ve muhasebe bölümünün böl_no’sunun 2 olduğu varsayılmaktadır
SELECT  *
FROM  personel
WHERE  bol_no =1 OR  bol_no = 2;

İİİ)Bölümü Satış yada Muhasebe olamayan 1960’dan sonra doğmuş bayan personeli listele.
1. Yazılım
SELECT  *
FROM  personel
WHERE  NOT (böl_no =1 OR
böl_no =2) AND dog_tar > ={01/01/60}
AND cins =.F.;

2. Yazılım
SELECT  *
FROM  personel
WHERE  böl_no  <> 1 AND
böl_no <> 2 AND dog_tar > ={01/01/60}
AND  cins =.F.;

BİR VERİ KÜMESİNDE ARAMA -IN OPERATÖRÜ

IN - İÇİNDE

"IN" operatörü DEĞİL(NOT) ile kullanılılabilir.

ÖRNEK:i) Bölümü 1,2,3 olmayan personel kimlerden oluşmaktadır?
SELECT  *
FROM  personel
WHERE  bol_no  NOT IN (1,2,3);

ÖRNEK:ii) Böl_no’su 1,2 yada 3 olan personeli listele
SELECT   *
FROM  personel
WHERE böl_no = 1  OR  böl_no= 2  OR
böl_no = 3;

Bu örneğin IN ile yapılmış şekli daha kısadır.

SELECT  *
FROM   personel
WHERE  NOT  böl_no  IN (1,2,3);

ARALIK SORGULAMA SÖZCÜĞÜ:

BETWEEN - ARASINDA

ÖRNEK:Maaşı 5- 10 milyon arasında olan personel kimlerdir?
SELECT   *
FROM  personel
WHERE  brüt  > =5000000  AND
brüt < = 10000000;

BETWEEN (ARASINDA) komutu ile daha kısa olacaktır.

SELECT  *
FROM  personel
WHERE  brüt  BETWEEN 5000000
AND  10000000;

KARAKTER TÜRÜ BİLGİ İÇİNDE ARAMA YAPMA -LIKE SÖZCÜĞÜ:

TANIM ÖRNEĞİ: Adres sutunu içerisinde semt bölümüne ait ayrıca bir sutun olmadığını varsayarak semt adı adres sutunu içerisinde yer alır ve buradan da LIKE (BULUNAN) komutuyla adres sutunu içerisinde Taksim semtinde oturan personeli listele.

SELECT  *
FROM  personel
WHERE  adres LIKE  "% TAKSİM %" ;

Adres LIKE "%TAKSİM%" ifadesi adres içinde her hangi bir yerde TAKSİM yazan yerde oturan personeli listeleyecektir. LIKE sözcüğünü ,alt çizgi (-) sembolü ile birlikte kullanmakta mümkündür.

SELECT  *
FROM  personel
WHERE  ad LIKE  "Mehmet -----";

Şekildeki komut ile ad alanı "Mehmet " ile başlayan ve ad alanı uzunluğu 10 karakter olan isimlere sahip personeli listeleyecektir."Mehmet Ali","Mehmet Can"- "Mehmetcik" gibi isimler listeleyecektir.Anlaşılacağı gibi - sembolü , tek karakterlik bir bilgiyi temsil etmektedir.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır