Önceki Access Sayfam

İlk Access Sayfam

Sonraki Access Sayfam

SORGULAR TASARLAMAK

 

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.

 

I. SORGULAR TASARLAMAK

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.

 

A. BİR SORGU YARATMAK

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ı

 

B. TASARIM GÖRÜNÜMÜYLE SORGU YARATMAK

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.

 

C. SORGUNUN ÇALIŞTIRILMASI

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:

 

UYGULAMALAR

Ö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.

 

 

GÖZDEN GEÇİRME

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?