Ders sonunda yapabilecekleriniz:
-Sorguları anlamak.
-Bir sorgu tasarlamak.
-Bir sorguyu çalıştırarak istenilen sonuçları elde etmek.
-Değişik sorgu türlerini kullanmak.
Veritabanında tablolar verileri içerir. Sorgular ise
spesifik olarak gerek duyulan bilgiye erişmenin en kolay yollarından birisidir.
Örneğin öğrenci tablosunda duran verilerden, İstanbul'da oturan öğrencilerin
listesine erişmek bir sorgudur.
Verilen iki tarih arasında siparişlerin adet ve
tutarları?
Tarih alanına:
BETWEEN 10/03/2001 AND 20/03/2001
ya da;
ARASINDA 10/03/2001 VE 20/03/2001
Yukarıdaki ifade Acces'te sorgu tasarımında Criteria
(Ölçüt) alanına yazılır ve sorgu
çalıştırılır. Sonuç olarak verilen iki tarih arasındaki bilgileri listelenir.
Sorgulama sürecinde bilgiler genellikle bir ya da daha
çok tablodan gelir. Bu nedenler iyi sorgular yaratmak için tabloların da iyi
bir şekilde tasarlanmış olması gerekir.
Sorgu (query) ya da sorgulama, tablolarda saklanmış
verilere yöneltilen sorudur. Sorgu aracılığı ile istenilen (gereksinim duyulan)
bilgilere erişilir. Sorgulamada belli verilerin çeşitli kriterlere göre
seçilmesi sağlanır.
Yapılan işleme göre sorgular şu sınıflamalara ayrılır:
Seçme sorgusu (Select query): Verilerden istenilen
alanların istenilen kritere uyanları bir tablo (Dynaset) olarak seçilir.
Çapraz sorgu (Cross query): Verileri satır ve kolon
olarak bir tablo biçiminde gösterir. Bu tip sorgulama ile yığın verilerin
toplanması sağlanır.
Güncelleştirme sorguları (update query): Bir işlemle çok
sayıda kaydı değiştirir. Bu sorgulamalar, yeni bir tablo yaratmak için, kayıt
silmek, eklemek ve değiştirmek için kullanılır.
Tablo-yapma sorguları (make table query): Yeni bir veri
seti yaratmak ya da sorgu sonuçlarının bir tablo olarak kayıt edilmesi için kullanılır.
Ekleme sorgu (append query): Bir tablodaki belli
kayıtların diğer bir tabloya eklenmesini sağlar.
Bizim konularımızda geçen sorgular genellikle seçim sorgusu olacaktır.
Yeni bir sorgu yaratmak için önce veritabanı penceresinden
Queries (Sorgular) seçilir. Ardından New (Yeni) düğmesine basılır:
Bir sorgu yaratmak için değişik yollar vardır:
Bu seçenekler:
Design View/Tasarım Görünümü-Sorgu Tasarım Görünümü
Simple Query/Basit Sorgu Sihirbazı- Basit Sorgu geliştirme
Crosstab/Çapraz Sorgu-Çapraz-tablo Sorgu Sihirbazı
Find duplicates/Yinelenenleri Bul Sorgusu-Tekrarları Bul
Sorgu Shirbazı
Find Unmatched/ Eşleşmeyenleri Bul Sorgusu-Eşleşmeyenleri
Bul Sorgu Sihirbazı
En kolay sorgu yaratma yöntemi tasarım görünümüdür.
Tasarım görünümü düğmesine basılarak yeni bir sorguya başlandığında önce hangi
tablo ve sorguların bu yeni sorguda yer alacağı seçilir. Genellikle aralarında
ilişki olan tablolar kullanılır.
1. Veritabanı penceresinden sorgular bölümü seçilir ve
New (Yeni) düğmesine basılır.
2. İstediğiniz tablo ya da tablolar seçilir.
3. Seçilen elemanların ardından Add düğmesine basılarak
tablolar sorgu penceresine eklenir Close düğmesi ile sorgu penceresine geçilir:
Sorgu penceresinde; tablolar yerleştirildikten sonra
gereksinim durulan alanlar seçilir ve sorgu penceresinin alt tarafına alınır.
Ardından alanlar üzerinde gereken düzenlemeler (kriter vb) yapıldıktan sonra
sorgunun çalıştırılmasına geçilir:
1. SORGU PENCERESİ
Yeni bir sorguya başlandığında ekrana sorgu penceresi
(query window) gelir. Sorgu penceresinin belli bölümleri vardır: Üzerinde
sorgulama işlemlerinin yapıldığı grafik ortama sorgu penceresi denir.
2. ALANLARIN SEÇİLMESİ
Bir sorgu yaratırken önce sorguya konu olacak ya da
sorguda alanlarına gereksinim duyulacak olan tablolar seçilir. Ardından tablo
alanları sorgu içine dahil edilir.
Bir tablonun herhangi bir alanını sorgu alan bölümündeki
kolonlara yerleştirmek için alan fare ile istenilen kolonun üzerine bırakılır.
3. KRİTER (CRITERIA) KULLANIMI
Seçim sorgularında önemli olan; seçilecek veriye
uygulanacak kriterin oluşturulmasıdır. Diğer bir değişle seçim işleminde
veriler belli bir kritere göre seçilir.
Örneğin AHMET adlı müşterinin kaydını istiyorsanız. Sorgu
penceresinde adı ve diğer istediğiniz alanları ızgara bölümüne sürükleyin ve
adı alanının Criteria (Ölçüt) satırına (hücresine) AHMET yazın.
Kriter Oluşturmada Kullanılacak Operatörler
Operatör İşlevi
>
Büyüktür
<
Küçüktür
=>
Eşit ya da büyüktür
<=
Eşit ya da küçüktür
Between ... And ..
Arasındadır
And
Ve
Or
Ya da
Not Değil
Bunların dışında
bir de Like sözcüğü ile sorgu kriteri (ölçütü) oluşturulur.
A ile başlayan
müşteriler:
Like
"a*"
İPUCU: Criteria
(Ölçüt) alanına a* da yazsanız, Access aynı kalıbı üretecektir.
Adının ilk
harfi A-D arasında olan müşteriler?
LIKE "[A-D]*"
Verilen iki tarih arasında, belli bir müşteri, belli bir
mal ve siparişi alan eleman olarak siparişlerin adet ve tutarları?
BETWEEN 10/03/2001 AND 20/03/2001
İli "İzmir" ya da "Manisa" olan
müşterilerin il içinde alfabetik sırada listesi.
İli İzmir OR Manisa
Sadece belli gruptan olan stokların birim fiyatlarına %10
zam.
Bu işlem ise bir Update (Güncelleme) sorgu ile yapılır.
Bunun için Query türünün değiştirilmesi gerekir.
Yeni bir sorguya başlandı. Tablolar seçildi. Tablonun
ilgili alanları ya da tüm alanları seçildi ve sorgu alanına taşındı. Varsa
diğer düzenlemeler de yapıldıktan sonra sorgunun işletilmesi gerekecektir.
Bu işlem için Run (Çalıştır) düğmesi kullanılır:
Önceki derslerde yarattığınız FC ECZA deposu veritabanı
tabloları üzerinde şu sorguları tasarlayın:
İstenen sorgular:
Adının ilk harfi
A-D arasında olan müşteriler?
Verilen iki tarih arasında ve belli bir müşteri konu için
siparişlerin adet ve tutarları?
Verilen iki tarih arasında ve belli bir müşteri ve
siparişi alan eleman olarak siparişlerin adet ve tutarları?
Verilen iki tarih arasında, belli bir müşteri, belli bir
mal ve siparişi alan eleman olarak siparişlerin adet ve tutarları?
En yüksek sipariş alan elemanı bulmak için elemanların
sipariş toplamlarını gösteren bir sıralı liste (azalan).
Hiç siparişi olmayan müşterilerin alfabetik sırada
listesi.
İli "İzmir" olan ve telefon numarasının ilk
karakteri 4 olan müşterilerin alfabetik sırada listesi.
İli "İzmir" ya da "Manisa" olan
müşterilerin il içinde alfabetik sırada listesi.
Sipariş adedi olarak en çok mal taşıyan taşıyıcı firma?
Sipariş alan elemanların toplam (tutar) siparişleri.
Stokta Birim fiyatlara %10 zam.
Sadece belli gruptan olan stokların birim fiyatlarına %10
zam.
Stokların depo kodunun ilk iki karakteri ile tanımlarının
ilk iki karakterinin birleşiminin listesi.
Sipariş toplamlarının taşıyıcı firma güzergahlarına göre
listesi.
1. Sorguların yararlarını açıklayın?
2. Sorgu türleri nelerdir?
3. Birden çok tabloya dayalı sorguların kullanılması için
ilişki gerekir mi? Tartışın.
4. Bir sorgunun sonucunda elde edilen veriler üzerinde
değiştirme işlemi yapılabilir mi?
5. Güncelleme sorgusu nedir? Ne işe yarar?