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
|