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.

 

SQL’DE ARİTMETİKSEL İFADELER VE FNKSİYONLAR :

 

KÜME FONKSİYONLARI:

 

SUM FONKSİYONU:

 

SUM           TOPLA

 

Fonksiyonun argümanı olarak belirtilen sütun ile ilişkili olana toplama işlemini gerçekleştirir.

 

ÖRNEK:İşletmedeki personelin brüt  maaşlar toplamı  ne kadardır?

 

SELECT  SUM (brüt)                                       SEÇ  TOPLA(brüt)

FROM  personel;                                              GELİŞ  personel;

 

AVG FONKSİYONU:

 

AVG            ORT

 

Aritmetiksel  ortalama (average) hesaplamak için kullanılır.

 

SELECT  AVG(brüt)                                        SEÇ ORT (brüt)

FROM   personel;                                             GELİŞ  personel;

 

MAX FONKSİYONU:

 

MAX           ÜST

 

Tablo içinde ,belirtilen sutun (alan)içindeki en büyük değeri bulur.

 

ÖRNEK:İşletme içindeki en yüksek maaş ne kadardır?

 

SELECT  MAX (brüt)                                      SEÇ ÜST (brüt)

FROM  personel;                                              GELİŞ personel;

 

 

MIN FONKSİYONU:

 

MIN         ALT

 

Tablo içinde,belirlenen sutun alan içindeki en küçük değeri bulur.

ÖRNEK:İşletme içinde 4 Mayıs  1970’den önce doğanlar için,asgari ücret nedir?

 

SELECT  MIN(brüt)                                        SEÇ   ALT(brüt)

FROM  personel                                               GELİŞ  personel

WHERE dog_tar < {05/04/70};                        OLAN  dog_tar < {05/04/70};

 

COUNT FONKSİYONU:

 

COUNT        SAY

 

Tablo içinde ,her hangi bir sayma işlemi gerçekleştirmek için kullanılır.

 

ÖRNEK:Ücreti 6000000’dan  olan personel sayısı nedir?

 

SELECT COUNT  (*)                                      SEÇ SAY(*)

FROM   personel                                              GELİŞ  personel

WHERE brüt > 6000000;                                 OLAN brüt > 6000000;

 

COUNT (SAY)  fonksiyonu  DISTINCT (TEKRARSIZ)sözcüğü ile de  kullanılır.

 

ÖRNEK:Personel tablosunda  mevcut  personelin işletme içinde kaç tane farklı  bölümde çalıştığını  bul.

 

SELECT  COUNT(DISTINCT böl_no)         SEÇ SAY (TEKRARSIZ böl_no)

FROM  personel;                                              GELİŞ  personel;

COUNT (böl_no)                                              SAY (böl_no)

 

 

GRUPLANDIRARAK  İŞLEM  YAPMA:

 

GROUP BY          GRUPLA

 

 

ÖRNEK: Her  bölümdeki ortalama maaş nedir?

 

SELECT  böl_no,AVG (brüt)                          SEÇ böl_no

FROM  personel                                               GELİŞ  personel

GOUP BY böl_no;                                            GRUPLA böl_no;

 

HAVING:

 

HAVING           SAHİP