Veritabanı (Database) Sorgulamaları ~ M.Şahan (NeoCooL)

Veritabanı (Database) Sorgulamaları

1 TEK TABLODAN SORGULAMALAR:

SELECT * FROM tablo

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

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

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

DISTINCT (Tekrarsız)
TANIM: SQL’de tablo içinde birbirinin aynı datalar bulunabilir Aynı satırların listeleme esnasında bir kez yazılması için Distinct sözcüğünü kullan

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


2 TABLO BİLGİLERİNİN SIRALANMIŞ OLARAK LİSTELENMESİ:

ORDER BY (Sırasıyla)
TANIM: Tablodaki sütunlardan ,belirli bir sütuna göre listelemek için SELECT komutuna , ORDER BY eklenir
ÖRNEK: 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;

DESC : Küçükten büyüğe sırala (A-Z) ASC : Büyükten küçüğe sırala (Z-A)
DESC yazılmazsa ASC direct kabul edilir (DEFAULT)
3 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: Personel dosyasından seçilen sütunlarını aynı anda hem ad, hem de otomatik olarak sıralar

SELECT sicil, ad, soyad, brut FROM personel ORDER BY ad, brut;

ÖRNEK Personel tablosundan seçili sütunları öncelik adda olmak üzere (Z-A) adı bozmadan soyadı (A-Z) sıralı listeler

SELECT sicil, ad, soyad, brut FROM personel ORDER BY ad ASC, soyad DESC, brut ASC;
veya;
SELECT sicil, ad, soyad, brut FROM personel ORDER BY ad, soyad DESC, brut;

KOŞULA BAGLI OLARAK LISTELEME:
WHERE
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ÖRLERI:

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:
1 NÜMERİK VERİ TİPLERİ:

ÖRNEK: Maaşı 8000000TL’den fazla olmayan personeli listele

SELECT * FROM personel WHERE brüt <= 8000000;

2 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”;

3 TARİH VERİ TİPİ:
Tarih VERİ TİPLERİ { } 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};

4 MANTIKSAL (LOJİK) VERİ TİPİ:
Mantıksal veriler için mümkün olabilen sadece iki değer söz konusudur 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;

4 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 ikisinin de olması istenir

SELECT * FROM personel WHERE brüt >5000000 AND cins =T;

NOT (DEĞİL)
OR (VEYA)

ÖRNEKLER:
1 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;

2 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;
3 Bölümü Satış yada Muhasebe olamayan 1960’dan sonra doğmuş bayan personeli listele

1YAZILIM:
SELECT * FROM personel WHERE NOT (böl_no =1 OR böl_no =2) AND dog_tar > ={01/01/60}
AND cins =F;
2YAZILIM:
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 (içinde)
“IN” operatörü NOT ile kullanılabilir

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

ÖRNEK: 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);

BETWEEN 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İ içinde ARAMA LIKE SÖZCÜĞÜ:
TANIM ÖRNEĞİ: Adres sütunu içerisinde semt bölümüne ait ayrıca bir sütun olmadığını varsayarak semt adı adres sütunu içerisinde yer alır ve buradan da LIKE (BULUNAN) komutuyla adres sütunu 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

0 yorum: