Hafta 8
Tablolar arası sorgulama Sorguya 3 tablo dahil edilmiştir. Tablolar arası ilişkiyi kurunuz. Yukarıdaki alanlar ekrana gelmektedir. Bölüm kodu BÖTE olanlar listelenecektir.
Sorgu sonucu Aşağıdaki sorgulamaları uygulayınız. Bölüm kodu İNÖ olan öğrencilerin aldıkları dersler, Ders Kodu ÖTÖ ile başlayan dersleri alan öğrenciler, 20011111 numaralı öğrencinin aldığı dersler.
Parametrik sorgular Önceki örnekte Bölüm Kodu BÖTE olanların sorgusu yapılmıştı. Diğer bölümler de düşünülürse bu şekilde sorgulama pratik olmayabilir. Bunun için en uygun sorgulama türü Parametrik sorgulardır. Parametrik sorgularda sorgulama yapılacak alan ya da alanların açıklamaları köşeli parantez içerinde yazılır. Sorgu sırasında kriter yazılır.
Kullanıcıyı yönlendirecek parametre açıklaması yazılır. Not: Between [Başlangıç tarihi] and [Bitiş tarihi] kriterini tartışınız.
Uygulama Öğrenci numarası ve adına göre derslerini veren sorgu oluşturunuz. Girilen ders koduna göre sınıf listesini veren sorgu oluşturunuz.
Sorgularda sayısal içeriği tasnif etmek, toplamak Görünüm menüsünden Toplamlar seçilir. Liste kutusu açılarak istenilen işlemler yapılabilir. Öğrenciye ait derslerin kredisini toplar
Çapraz Sorgulama Yeni bir sorgu sayfası açalım. Sorgular/ Çapraz sorguyu seçelim Yandaki şekilde satır ve sütün başlıklarını, değeri belirleyelim Sonuç: Bölümlere göre görülen numaradaki öğrencilerin toplam kredileri
Tablo oluşturma sorguları Accessde sorgulardan yararlanarak yeni tablolar hazırlama imkanı bulunmaktadır. Yeni sorgu oluşturalım. Tablo ekleyelim. Alanları ve kriteri belirledikten sonra Sorgu türü/Tablo Yapma sorgusu seçelim. Tablo adı verelim. Sorgu /Çalıştır seçimi ile tablo görüntüsü ekrana gelmektedir.
Ayrıca Sorgu ekranında bulunan Sorgu/Silme Sorgusu: Belirtilen koşula göre birden fazla kayıtı siler. Sorgu/Ekleme Sorgusu: Yapıları aynı olan bir tablodan başka bir tabloya kayıt yapılır.
Sorgularda kullanılacak ölçütlere örnekler Etki >234 234'ten büyük olan bütün sayıları getirir. 234'ten daha küçük olan sayıları bulmak için < 234 kullanın. >="Göktuğ" Göktuğ'dan alfabenin sonuna kadar olan bütün kayıtları getirir. Between #2/2/2007# And #12/1/2007# 2-Şub-07 ile 1-Ara-07 (ANSI-89) arasında olan tarihleri getirir. Veritabanınız ANSI-92 joker karakterlerini kullanıyorsa, pound işaretleri # yerine tek tırnak işareti ' kullanın. Örnek: Between '2/2/2007' And '12/1/2007' Not "Almanya" Alanın tam içeriğinin "Almanya" ile tam eşit olmadığı tüm kayıtları bulur. Ölçüt, "Almanya"nın yanı sıra, "Almanya (avro)" veya "Avrupa (Almanya)" gibi karakterler içeren kayıtları döndürür. Not "T*" T harfiyle başlayanlar dışında tüm kayıtları bulur. Veritabanınız ANSI-92 joker karakter kümesini kullanıyorsa, yıldız * yerine yüzde işareti % kullanın. Not "*t" T ile bitmeyen bütün kayıtları bulur. Veritabanınız ANSI-92 joker karakterler takımını kullanıyorsa, yıldız (*) işareti yerine yüzde (%) işareti kullanın. In(Kanada,İngiltere) Bir listede Kanada veya İngiltere içeren bütün kayıtları bulur. Like "[A-D]*" Metin alanında, A - D arası harflerle başlayan tüm kayıtları bulur. Veritabanınız ANSI-92 joker karakter kümesini kullanıyorsa, yıldız (*) yerine yüzde işareti (%) kullanın. Like "*ar*" "ar" harf dizisini içeren tüm kayıtları bulur. Veritabanınız ANSI-92 joker karakter kümesini kullanıyorsa, yıldız (*) yerine yüzde işareti (%) kullanın. Like "Ahmet Özgü?" Ahmet ile başlayan, 5 harflik ikinci dizesinin ilk dört harfi "Özgü" olan ve son harfi bilinmeyen bütün kayıtları bulur. Veritabanınız ANSI-92 joker karakterler takımını kullanıyorsa, soru işareti ? yerine alt çizgi _ kullanın. #2/2/2007# 02.02.07'de girilen bütün kayıtları bulur. Veritabanınız ANSI-92 joker karakter takımını kullanıyorsa, tarihin iki tarafına pound işareti (#) yerine tek tırnak (') işareti koyun, örneğin ('2/2/2007'). < Date() - 30 30 günden daha eski olan tarihleri getirmek için Tarih işlevini kullanır. Date() Bugünün tarihini içeren tüm kayıtları getirmek için Tarih işlevini kullanır. Between Date() And DateAdd("M", 3, Date()) Bugünün tarihi ve üç ay öncesinin arasındaki tüm kayıtları getirmek için Tarih ve TarihEkle işlevlerini kullanır. Is Null Boş (boş veya tanımlanmamış) değer içeren bütün kayıtları getirir. Is Not Null Değer içeren bütün kayıtları getirir. "" Sıfır uzunluklu dize içeren bütün kayıtları getirir. Bir alana değer eklemeniz gerekmesine karşın değerin ne olduğunu henüz bilmediğinizde sıfır uzunluklu dize kullanılır. Örneğin bir alan için faks numarası gerekmesine karşın bazı müşterilerin faks numarası olmayabilir. Bu durumda numara yerine bir çift, boşluksuz çift tırnak "" girilir.
Sorgularda kullanılacak ölçütlere örnekler İfade Sonuç "Satış Görevlisi" Metin alanında, metin değerini Satış görevlisi diye değiştirir. #8/10/07# Tarih/Zaman alanında, tarih değerini 10-Ağu-07 diye değiştirir. Evet Evet/Hayır alanında, Hayır değerini Evet ile değiştirir. "PN" & [ParçaNumarası] Belirtilen her parça numarasının başına "PN" ekler [UnitPrice] * [Quantity] BirimFiyat ve Miktar alanlarında değerleri çarpar. [Freight] * 1.5 Nakliye alanında değerleri yüzde 50 artırır. DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) Sipariş Ayrıntıları tablosundaki ÜrünKimliği değerleri, geçerli tablodaki ÜrünKimliği değerleri ile eşleşir; bu ifade Miktar alanındaki değerleri BirimFiyat alanındaki değerlerle çarparak satış toplamlarını güncelleştirir. İfade DSum işlevini kullanır çünkü birden fazla tablo veya tablo alanına karşı çalışabilir. Right([ShipPostalCode], 5) Metnin veya sayısal dizenin en solundaki karakteri kesip en sağdaki 5 karakteri bırakır (kaldırır). IIf(IsNull([UnitPrice]), 0, [UnitPrice]) UnitPrice adlı alanda null (boş veya tanımlanmamış) değeri sıfır (0) değeriyle değiştirir.
Uygulama örnekleri