TEK TABLODAN SORGULAMALAR:
SELECT SEÇ
FROM GELİŞ
ÖRNEK: 1) Bütün bilgileri personel tablosundan koşulsuz olarak listele.
SELECT * SEÇ *
FROM personel GELİŞ personel
ÖRNEK:2) Personel tablosundan SEÇ komutuyla istenen sütun adlarını belirt.
SELECT sicil,sosy_g_no,ad,soyad,dog_tar, SEÇ sicil,sosy_g_no,ad,soyad,dog_tar, adres,cins,brüt,böl_no,yön_s_g_n adres,cins,brüt,böl_no,yön_s_g_n
FROM personel; GELİŞ personel;
ÖRNEK:3)Personel tablosundan istenen sütün başlıklarını listele.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel; GELİŞ 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 SEÇ TEKRARSIZ sat_no
FROM par_sat; GELİŞ 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 SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY brüt ASC; SIRALA brüt B-K;
DESC Küçükten büyüğe sırala ASC Büyükten küçüğe sırala
İİ)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 SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY ad,brüt; SIRALA 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 SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY ad ASC,soyad DESC, SIRALA ad B-K,soyad K-B,
brüt ASC; brüt B-K;
veya;
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY ad,soyad DESC,brüt; SIRALA ad,soyad K-B,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 * SEÇ *
FROM personel GELİŞ personel
WHERE brüt > 5000000; OLAN brüt > 5000000;
KARŞILAŞTIRMA OPERATÖRLERİ:
OPERATÖR
ANLAMI
< ...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 * SEÇ *
FROM personel GELİŞ personel
WHERE brüt <= 8000000; OLAN 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 * SEÇ *
FROM personel GELİŞ personel
WHERE ad <> “Ali”; OLAN 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 * SEÇ *
FROM personel GELİŞ personel
WHERE dog_tar <={12/31/59}; OLAN 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 * SEÇ *
FROM personel GELİŞ personel
WHERE cins = .T.; OLAN cins =.D.;
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 * SEÇ *
FROM personel GELİŞ personel
WHERE brüt >5000000 AND cins =.T.; OLAN brüt > 5000000 AND cins =.D.
NOT DEĞİL
OR VEYA
ÖRNEKLER:
i)Doğum tarihi 1960’dan önce olan maaşı 6000000 – 10000000 arasındaki bayan personelin listele.
SELECT * SEÇ *
FROM dog_tar < {01/01/60} AND GELİŞ dog_tar < {01/01/60} VE
brüt > = 6000000 AND brüt < =10000000 brüt > = 6000000 VE brüt < =10000000
AND cins = .F.; VE cins =.Y.;
İİ)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 * SEÇ *
FROM personel GELİŞ personel
WHERE bol_no =1 OR bol_no = 2; OLAN bol_no = 1 VEYA bol_no =2;
İİİ)Bölümü Satış yada Muhasebe olamayan 1960’dan sonra doğmuş bayan personeli listele.
1.YAZILIM:
SELECT * SEÇ *
FROM personel GELİŞ personel
WHERE NOT (böl_no =1 OR OLAN DEĞİL (böl_no =1 VEYA
böl_no =2) AND dog_tar > ={01/01/60} böl_no =2)VE dog_tar >={01/01/60}
AND cins =.F.; VE cins=.Y.;
2.YAZILIM:
SELECT * SEÇ *
FROM personel FROM personel
WHERE böl_no <> 1 AND OLAN böl_no <> 1 VE
böl_no <> 2 AND dog_tar > ={01/01/60} böl_no <> 2 AND dog_tar > = {01/01/60}
AND cins =.F.; VE cins =.Y.;
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 * SEÇ *
FROM personel GELİŞ personel
WHERE bol_no NOT IN (1,2,3); OLAN böl_no DEĞİL İÇİNDE (1,2,3);
ÖRNEK:ii) Böl_no’su 1,2 yada 3 olan personeli listele.
SELECT * SEÇ *
FROM personel GELİŞ personel
WHERE böl_no = 1 OR böl_no= 2 OR OLAN böl_no =1 VEYA böl_no =2 VEYA
böl_no = 3; böl_no = 3;
Bu örneğin IN ile yapılmış şekli daha kısadır.
SELECT * SEÇ *
FROM personel GELİŞ personel
WHERE NOT böl_no IN (1,2,3); OLAN DEĞİL böl_no İÇİNDE (1,2,3);
ARALIK SORGULAMA SÖZCÜĞÜ:
BETWEEN ARASINDA
ÖRNEK:Maaşı 5- 10 milyon arasında olan personel kimlerdir?
SELECT * SEÇ *
FROM personel GELİŞ personel
WHERE brüt > =5000000 AND OLAN brüt > =5000000 VE
brüt < = 10000000; brüt < = 10000000;
BETWEEN (ARASINDA) komutu ile daha kısa olacaktır.
SELECT * SEÇ *
FROM personel GELİŞ personel
WHERE brüt BETWEEN 5000000 OLAN brüt ARASINDA 5000000
AND 10000000; VE 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 * SEÇ *
FROM personel GELİŞ personel
WHERE adres LIKE ‘% TAKSİM %’ ; OLAN 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 * SEÇ *
FROM personel GELİŞ personel
WHERE ad LIKE ‘Mehmet -----‘; OLAN ad BULUNAN ‘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.