- Katılım
- 13 Eyl 2008
- Konular
- 21,048
- Mesajlar
- 36,638
- Çözüm
- 48
- Online süresi
- 5mo 21d
- Reaksiyon Skoru
- 20,130
- Altın Konu
- 0
- TM Yaşı
- 17 Yıl 8 Ay 28 Gün
- Başarım Puanı
- 854
- MmoLira
- 3,756,562
- DevLira
- -3
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Sorgular
Verilerimizi, kelime işlem programının içinde tablolar oluşturup, bu tabloların içine yazmıyorsak, bunun bir nedeni olabilir: Verişlem programlarının sorgu aracı. Sorgu veya Query, veritabanı fikri ortaya atıldığı günden beri var. Hatta, veritabanı dosyalarının, diğer bilgisayar kayıt dosyalarından ayrışmasını sağlayan unsur, sorgudur. Bir veritabanı dosyasındaki bilgileri sorgulama ve bu verilerden yeni bilgiler elde etme ihtiyacı o kadar belirgin hale geldi ki, bilgisayar mühendisleri sırf bu iş için bir dil bile icad ettiler: Sorgu Dili (Query Language).
Ne var ki, veritabanı biçimi kadar sorgulama dili ortalığı kaplayınca, belli başlı bilgisayar donanım ve yazılım firmaları ve üniversiteler biraraya gelerek, bu kargaşaya son vermek üzere kolları sıvadılar; ve ortaya SQL (Structured-Yapılandırılmış Sorgu Dili) çıktı.
SQL, 1980'lerin başlarında Sybase firması tarafından UNIX ortamı için geliştirildi. Microsoft firması, Sybase'den ruhsatını aldığı bu teknolojiye dayanan Microsoft SQL Server programını 1987'de Windows 3 için piyasaya sürdü. Ertesi yıl, MS, Sybase ve Ashton-Tate firmaları MSSQL-Server'nın OS/2 sürümünü ortaklaşa hazırladılar ve daha sonra IBML'in de katıldığı bu çaba 1991'e kadar sürdü. Ashton-Tate'in bu birlikten 1990'da çekilmesi üzerine, Sybase ve MS yeni bir anlaşma yaparak, dili ve Server'ı, Windows NT ortamı için birlikte geliştirmeye başladılar. Bu çabanın sonucu SQL Server programı oldu. Bu program, bugün 7'nci sürümündedir.
Bir taraftan endüstri çapında geçerli bir teknoloji ve bu teknolojinin başlıca aracı olan bir dilin adı olarak SQL, diğer taraftan Microsoft firmasının bu teknoloji ve dili kullanan bir programının adında (SQL Server) kullanıldığı için, sadece Microsoft'a ve Windows ortamına ait sanılabilir. Bu doğru değildir. SQL, bugün piyasada bulabileceğiniz belli başlı veritabanı oluşturma ve veri-işlem programlarının ortak dilidir. Microsoft Access, 1992 yılında dünyaya geldi; ve ilk günden itibaren tek başına bir veritabanı oluşturma ve işleme programı olarak değil, fakat daha büyük veritabanı dosyalarına, veri bankalarına bağlanabilen ve oradaki verileri işleyebilen bir program olarak tasarlandı. Access 2000, Access Projesi (Dosya menüsünden Yeni maddesini ve açılan şablon kutusunda "Proje (Yeni Veritabanı)" adlı simgeyi tıklayın) dosyaları oluşturarak, SQL Server dosyalarına ulaşabilir; bu dosyalarda SQL sorguları çalıştırabilir.
İyi bir Access kullanıcısı, bu programla büyük veritabanı mimarisine adam atabilir; ileri düzeyde veri-işlem tekniklerini öğrenebilir. Veri Madenciliği (Data Mining) teknolojileri, Online Analytical Processing (OLAP) teknikleri ve günümüzde veri yönlendirmeli Web uygulamaları, SQL'e dayanan gelişmelerdir. Access'te öğreneceğiniz SQL, size bu teknolojilerie ilk adımı atmayı sağlayacaktır.
Access'te SQL'e ilk adım ise daha önce gördüğümüz Süzme işleminin son bölümünde kısaca sözünü ettiğimiz Gelişmiş Süzme/Sıralama aracı ile atılabilir. Aslında Access'te yaptığımız seçme veya Form yoluyla süzme işlemleri, bir sorgu işlemidir; ancak bu sorgunun SQL komutunu (veya Access'in kullandığı kelimeyle, "deyimini") Access kendisi oluşturur. Gelişmiş Süzme/Sıralama (GSS), diğer süzme işlemlerine göre "ileri" sayılırsa da, bir sorgu deyimi (SQL komutu) yazmanın yanında basit sayılabilir. Bu sebeple, tabir yerinde ise Access'in desteklediği bir sorgu geliştirme işlemi olan GSS'yı sorguya giriş konusu olarak ele alabiliriz. GSS'yı kavradığımız anda sorgu tekniğini kavramış oluruz. Access'in sorgu tekniği ise daha genel SQL'e giriş sayılır.
GSS'nin bir sorgu aracı olarak sınırlamaları vardır. Sadece bir tablonun içerdiği verilerle çalışabilir; birden fazla tablo veya başka sorguların sonuçlarını kullanamaz. Sonuç itibariyle GSS de bir tabloda belirli ölçütleri karşılayan kayıtları görünteleme aracından başka bir şey değil; birden çok tabloda sorgu yapmak için gerçek sorgu aracını kullanıp, gerçek SQL komutları yaszmamız gerekir. GSS'te verilere sadece basit sorular sorabiliriz. (Daha gelişmiş sorgular için, gerçek sorgu aracını kullanırız.) GSS ile yapacağımız süzme sonunda görüntülenen kayıtların bütün alanları görüntülenir; oysa gerçek sorguda ortaya çıkacak yeni tablo veya formda hangi alanlar olsun istiyorsanız o alanlar olur. Bu sınırlamalarına rağmen (belki de bu yüzden) GSS, Access'te sorguya giriş için mükemmel bir adım sayılır. Şimdi bir tabloyu açın ve Kayıtlar menüsünden önce Süz, sonra Gelişmiş Süzme/Sıralama maddesini seçin.
Bu, eğer başta tablo ekleyebilseydik, sorgu hazırlama penceresinin ta kendisi olurdu. GSS, belirttiğimiz gibi sadece bir tablo ile çalışır; ve o tablo da seçilmiş olarak karşımıza gelir. Bu penceresi inceleyelim. Üstte, sorguda (pardon, süzgeçte) kullanılacak tablo yer alır. Buraya alan listesi denir. Altta ise süzgeci oluştururken kullanacağımız, şimdilik boş olan, sorgu tasarım kılavuzu yer alır. Burada sadece sözme amacıyla yararlanacak da olsak oluşturacağımız "şey" gerçekten bir sorgudur. Bu bölümde, Alan isimli birinci satırın birinci sütundaki kutusunun içini, sağda seçme oku belirince oku tıklayın: yukarıda alan listesinde yer alan alan adlarının burada sıralandığını göreceksiniz.
Sorgu, burada olduğu gibi ileri düzeyde süzme işlemi için bile olsa, "veriye soru sorulması" anlamına gelir. GSS'de bir sınıftaki öğrencilerin sınav notlarını içeren tablomuza örneğin "Son üç sınavda 4,5'dan aşağı not almış öğrenciler kimler?" diye sorabiliriz. Ya da yemek tariflerini derlediğimiz bir veritabanında, "Kebaplar" tablosuna "İçinde biber olmayan ve kıyma ile yapılmayan kebaplar hangileri?" sorusunu yöneltebiliriz. Müzik kaset ve CD'lerinizin veritabanındaki "Türküler" tablosuna "Yavuz Bingöl'ün 1996'dan sonra çıkmış kaset ve CD'leri hangileri?" diye sorabiliriz. Ya da elimizdeki Adres Defteri veritabanında Aile tablosuna "Istanbul ve Niğde'de oturan ve kart yollamam gereken dostlarım kimler?" şeklinde bir soru yöneltebiliriz.
Bunun için, Alan sırasının birinci sütundaki kutusunun seçme okunu tıklayarak, alan listesinden Şehir'i seçmemiz gerekir. Sonra, GSS'nin sadece süzme değil aynı zamanda sıralama yaptığını hatırlayarak, ikinci sıradaki Sırala kutusunun sağındaki seçme okunu tıklayarak, Artan, Azalan ve Sırasız seçeneklerinden Artan'ı seçelim. Ve sıra geldi, süzme için uygulatacağımız ölçütleri belirlemeye. Ölçüt satırının içini tıklayıp "Istanbul" yazıyoruz. Tırnak işaretlerini siz koymazsanız, Access koyar. Istanbul VE Niğde'de oturan dostlarımızı birlikte seçmek için, alttaki VEYA satırına da "Niğde"yazalım. Buraya kadar, tabloya soracağımız sorunun birinci bölümünü sormuş olduk: Istanbul ve Niğde'de oturanlar. Şimdi sorgunun ikinci bölümüne geliyoruz: Kart göndermem gerekenler. İkinci bölümdeki veritabanı alıştırmasını yaptıysanız, "KartYolla" alanının türünü "Evet/Hayır" yaptığımızı hatırlıyor olmalısınız. Şimdi, Alan satırının ikinci sütununda KartYolla alanının seçin; ("Evet" değerlerinin sıraya sokulmasına gerek olmadığına göre ikinci satırı atlayabilirsiniz) ve Ölçüt sarımına Evet yazın. Araç çubuğundaki Süzgeçi Uygula simgesi tıklayın ve tablonuzun sadece Istanbul veya Niğde'de oturanlardan kendilerine kart yollamam gerekenleri gösterdiğini, diğerlerinin süzüldüğünü ve süzgecin diğer tarafında kaldığını göreceksiniz.
Kendi kendinizi kutlayabilirsiniz: çünkü sadece Access'in gelişmiş süzme ve sıralama aracını kullanmakla kaldık; SQL komutu yazmaya da ilk adımı attık. Şimdi artık Access'te ciddi sorgulama işleri yapabiliriz.
"Sorgu, veriye soru sormaktır!" demiştik. Kimi zaman bir tablonun cevaplayabileceği soruları, süzme ve hatta sıralama ile çözümleyebiliriz. Fakat elde iki veya daha çok tablo varsa ne yapanız? Diyelim ki, siz sadece bir sınıfın değil, beş ayrı sınıfın öğretmenisiniz ve sınıflarınızda başarı oranını etkileyen garip bir eğilim farkettiniz. Sizin derslerinizde kız öğrenciler genellikle başarısız oluyor. Sadece bir sınıfın öğretmeni olsanız, bu kuşkunuzun yerinde olup olmadığını sınamak için iki süzme işlemi size sonucu verirdi. (Nasıl?) Fakat beş ayrı sınıf söz konusu olunca, her tablonun kendi içindeki yüzdeler, anlamlı olmayabilir. Size bütün tablolardan seçme-süzme yapan bir araç gerekiyor. Ya da beş tabloya birden soru sormanızı sağlayacak bir araç. Bu aracın adı Sorgu'dur.
Access 2000, bize altı ayrı sorgu türü veriyor. Bunlardan Basit Seçme sorgusu, biraz önce ele aldığımız Gelişmiş Süzme/Sıralama aracının birden fazla tablo kabul edebilenidir. Çapraz sorgu, verileri gruplandırarak, bunlar için sayım, toplam ve ortalama gibi hesapları yapar. Örneğin öğrencileri cinsiyetlerine ve derslere göre gruplandırıp, aldıkları not ortalamalarını göstermek., çapraz tablo yapmaktır. Çapraz sorgu bir tabloda çalıştığı için, örneğin öğrencilerinizin notları derslere göre ayrı tablolarda ise bunları bir tabloda basit seçme sorgusuyla birleştirmeniz gerekir. Tablo yapma sorgusu, seçme sorgusundan farklı olarak, çalıştığı zaman ortaya bir tablo penceresi çıkmaz; Access, sizden daha önce aldığı isimle bir tablo oluşturur. Bu tablo veritabanının parçası haline gelir. Oysa diğer sorguların sonuçları ancak sorgu çalıştığı sırada vardır. Güncelleştirme sorgusu, sorgu tasarımı sırasında verdiğiniz bir sabit değeri veya verdiğiniz bir deyimin o sırada bulunacak sonucunu, tayin ettiğiniz bir alana yazar. Bu, "Bul-Değiştir" gibi basit bir araç olmayıp, her kaydı, belirli bir formüle veya kıydın kendi içindeki bir değere göre yeniden hesaplayabilir. Ekleme ve Silme sorguları da güncelleştirme sorgusu gibi, ya farklı tabloların kayıtlarını birbirine ekler, ya da tablolardaki kayıtları siler. Bunların dışında tasarım sırasında yüklediğiniz işlevlerin bir sonucu olarak bir sorgu Parametre sorgusu (verdiğiniz görevi yapabilmek için kullanıcıdan bir değer girmesini isteyen sorgu), SQL Sorgusu (SQL komutlarını kullanarak birleşim, doğrudan sorgu, veri tanımla ve alt sorgu gibi veritabanınızı ODBC yoluyla dışarıdan kullanacak kullanıcıları gözönünde tutarak hazırladığınız sorgular) ve otomatik arama sorgusu (yeni bir kaydın bazı alanlarının otomatik olarak doldurulmasını sağlayan sorgu, AutoLookup sorgusu) diye de adlandırılabilir.
Basit Seçme Sorgusu (BSS) dışındaki sorgular, ileri düzeyde Access bilgisi ve hatta bir ölçüde Programlar İçin Visual Basic for Applications (VBA) bilgisi gerektirebilir. BSS'yi iyi kavrayarak, bu ileri düzeydeki sorgular için mükemmel bir başlangıç yapabilirsiniz. BSS'in temel özelliklerini sıralarsak, şunlar karşımıza çıkıyor:
1. Sorguda birden fazla tablo kullanabilirsiniz; tablolar arasında oluşturduğunuz ilişkiden yararlanabilirsiniz.
2. Sorgu sonucu sadece istediğiniz alanları görüntüleyebilir; bu sırada gerekli olmayan sütunları yeni sorgu sonucu tablosuna almayabilirsiniz.
3. Sorgu sonucu oluşacak tabloda alanları istediğiniz sütun sırasına sokabilirsiniz.
4. Seçme işlemi sonucu kaç kaydın görüntülenmesini istiyorsanız, o kadar kayda yer verebilirsiniz.
5. BSS (ve diğer) sorguları icra ettikten sonra, sorguya konu olan tabloların değerlyeri değişmez; başka bir deyişle sorgular tabloları sadece "okur," içeriğini değiştirmezler. Bir sorgu işledikten sonra tablo oluşturuyorsa (Tablo Yapma Sorgusu ise) ortaya yeni bir tablo çıkar. Sorguyu tekrar çalıştırdığınızda bu tablo yeniden yazılır ve Access 2000, Özelleştir kutusunda yaptığınız uyarı ayarlarına göre sizi uyarabilir. İkinci bölümdeki Adres Defteri alıştırmasını yaptıysanız, bu veri tabanını açın ve birlikte bir BSS oluşturalım. Adres Defteri veritabanını oluşturmadı iseniz, aşağıdaki adımları kendi veritabanınıza uygulamak zorundasınız. Burada yapmak istediğimiş iş veya Access 2000'e sormak istediğimiz soru şu: Istanbul'da oturan ve çocuğu olan dostlarımız kimler, çocuklarının adı ne? Veritabanı dosyası açıldığında, veritabanı penceresinde, nesneler listesinde Sorgular satırını tıklayın. Sorgular penceresinde "Tasarım görünümünde sorgu oluştur" ve "Sihirbazı kullanarak sorgu oluştur" şeklinde iki kısayol göreceksiniz. Pencerenin araç çubuğundaki Yeni düğmesini tıklarsanız, karşınıza daha çok imkan sunan bir sihirbazın ilk adımını içeren bir kutu açılacaktır. Bu kutudaki Basit Sorgu Sihirbazı maddesi, Sorgu nesnesi penceresindeki "Sihirbazı kullanarak sorgu oluştur" kısayolu ile aynı sonucu verir. İster Yeni'yi tıklayıp açılan kutudan Basit Sorgu Sihirbazı maddesini seçin, ister "Sihirbazı kullanarak sorgu oluştur" kısayolunu tıklayın.
BSS sihirbazının ilk penceresinde hangi alanların sorguda bulunmasını istediğinizi belirtmeniz gerekir. Bir sorgu sadece tablodan değil sorgu sonucundan da seçme yapabilir; dolayısıyla sol üstteki seçmeli listede veritabanınızda mevcut bütün tablolar ve sorgular sıralanır. Bu listede seçilmiş olan tablo veya sorgunun içerdiği alanlar ise sol altta kullanılabilir alanlar listesinde yer alır. Veritabanımıza soracağımız sorunun birinci bölümü "Istanbul'da oturan" dostlarımızın seçilmesi olduğuna göre, bu kişilerin kayıtlı olduğu Aile tablosunu seçmek zorundayız. Bu alanlardan hangileri BSS sonucu oluşturulacak tablomuzda yer alsın istiyoruz? Bir kere dostlarımızın adını ve soyadını seçmemiz gerekir. Seçilecek kişilerin tümünün Istanbul'da oturanlar olması için Şehir alanının da seçilmesi şart. Bunu yapmak için arzu ettiğimiz alanın adını bir kere tıkladıktan sonra ortadaki düğmelerden en üstte olan sağa doğru tek oklu düğmeyi tıklıyoruz. Soldaki alanların tümünün sorgu sırasında kullanılabilir olmasını isteseydik, ikinci sıradaki iki oklu düğmeyi tıklamamız gerekirdi. Bir alanı yanlışlıkla sağa geçirirsek, üçüncü sıradaki sola doğru tek oklu düğmeyi tıklayarak sorguda kullanabileceğimiz alanlar listesinden çıkartırız. Bu alanların tümünü sorgu listesinden çıkartmak için el alttaki iki oklu düğmeyi tıklayabiliriz.
Veritabanına sorduğumuz sorunun ikinci bölümü, Istanbul'da oturan dostlarımızdan sadece çocukları olanların seçilmesini, üçüncü bölümü ise çocukların adlarının da listelenmesini gerektirdiğine göre, bize Çocuklar tablosu ve bu tablodaki çocuk adları alanı da gerekiyor. Şimdi Tablolar ve sorgular kutusunun seçme okunu tıklayarak açılan listeden Çocuklar tablosunu seçelim, sonra da bu tablonun Adı adlı alanını sağa aktaralım. Ama hemen İleri düğmesini tıklamayın.
Şimdi bir an için kendimizi Access 2000'in yerine koyalım: Biraz sonra bir seçme işlemi yapacağız; çocuğu olan ve Istanbul'da oturan kişileri seçeğiz. Istanbul'da oturanları seçmek kolay: Eğer Şehir alanındaki değer "Istanbul" ise bu kişiyi seçebiliriz. Peki bu kişilerin çocuğu olup olmadığını nasıl bilebiliriz? Veya şöyle soralım: bu kişilerin çocukları varsa bunları Çocuklar tablosunda nasıl belirleyebiliriz? Bu iki tablo arasında ilişki sağlayan alanla! Veritabanı tasarımında en zor nokta, tablolarda gereksiz yere tekrarı önlemek amacıyla alanları başka tablolara aktarmak gerektiğinden söz ettiğimiz sırada, tablolar arasında ilişki kurmamız gerektiğini belirtmiştik. İkinci bölümden hatırlıyorsanız, Aile tablosuyla Çocuklar tablosu arasındaki ilişkiyi, yani hangi çocuğun hangi aileye mensup olduğunu Aile Sıra No alanındaki bilgiyi iki tabloda ortak kullanarak biliyoruz. Başka bir deyişle bir çocuğun Aile Sıra No alanındaki değer, bu çocuğun hangi ailenin üyesi olduğunu gösteriyor. Sorgu sırasında Access 2000, şöyle düşünebilir: "Hımm. Istanbul'lu bir kişiyi seçeyim; sonra bu kişinin Aile Sıra No alanındaki değeri, Çocuklar tablosundaki aynı adlı alanda arayayım; eğer bu iki değer aynı ise bu çocuğun adını alıp, Istanbullu kişi ile birlikte kaydedeyim." Access'in düşündüğünü uygulayabilmesi için, ona her iki tablodan Aile Sıra No alanını da vermemiz gerekir. O halde önce açık olan Çocuklar tablosunun, sonra da yeniden Aile tablosunu seçerek, Aile Sıra No alanlarını sağa aktarın. Bu kutuda işimiz bittiğine göre Tamam'ı tıklayabilirsiniz. (Sorgu kaç tablodan kaç alan seçmeyi gerektiyorsa, o kadar alan seçebilirsiniz. Buradaki örnek bu alanları gerektirdiği için burada duruyoruz; sizin örneğiniz başka tablolardan başka alanlar gerektiyorsa, seçmeye devam edin.)
Basit sorgu sihirbazının ikinci penceresi, sorgu sonucu oluşturulacak tabloda kaç kayıt olacağını belirler. Varsayılan değer, seçtiğiniz tablolardaki tüm kayıtların sorgu sonucu oluşacak tabloya alınmasıdır. Fakat diyelim ki size sorgu sonucu oluşacak tablonun ilk 5, 25 veya 100 kaydını içeren özet bir tablo da oluşturabilirsiniz. Özet tablo için Özetk seçeneğini seçin ve Özet Seçenekleri düğmesini tıklayın. Bu iş bittikten sonra veya Ayrıntılı seçeneğini seçerek, İleriyi tıklayabilirsiniz. Üçüncü pencerede yeni sorgunuza isim vermeniz, Son'u tıkladığınızda sorgunun icra edilmesini mi, yoksa sorguda sihirbazın yapmadığı değişiklikleri yapmak üzere tasarım görünümünün açılmasını mı istediğinizi belirtmeniz gerekir. Burada yardım isteyip istemediğinizi belirteceğiniz bir başka seçenek daha var. Tasarımı güç sorgular yaptığınızda, Access 2000'in yardım penceresinin açılmış olması size kolaylık sağlar. Şimdi, sorgunun tasarımı ile ilgili işlerimiz bitmediği için ikinci seçeneği işaretleyerek Son'u tıklayalım.
Access 2000, seçtiğiniz iki tabloyu sorgu tasarım penceresinin üst bölümünde gösteriyor. İki tablo arasındaki ilişki çizgisine dikkat edin; bu ilişkiyi ikinci bölümdeki alıştırma sırasında kurmuştuk. Access, seçtiğiniz altı alanı, değerleri ne olursa olsun, bütün kayıtları ile seçmeyi (ve bunu yaparken iki tabloyu birleştirmeyi) sağlayan bir sorgu tasarımı öneriyor. Bütün alanların seçildiğini, sorgu tasarım penceresinin alt yarısındaki kılavuzda, Alan satırındaki alan adlarından anlıyoruz. Bu satıra yazılan alan adlarını inceleyin; tablo adı ile tablonun alan adı nasıl birleştiriliyor? İkinci satırda ise tablonun adı belirtiliyor. Sırala satırının boş bırakıldığına dikkat edin. Göster satırındaki kutuların işaretli olması bu alanın sorgu sonucu oluşturulacak tabloda gösterileceği anlamına geliyor. Ve son olarak Ölçüt satırlarının boş olduğuna dikkat edin. Biz sorgumuzun sadece çocukları olan Istanbulluları kapsamasını istiyorduk. O halde, Şehir alanının sütununda, Ölçüt satırına "Istanbul" yazmamız gerekiyor, ki sadece Istanbullular seçilsin. Peki bunlar arasından çocukları olanları nasıl seçeğiz, Access ile çalışma konusunda ustalığınız ilerledikçe, bu tür şartlı seçmeleri (SQL deyiminde "eğer" şartı geçen sorguları) oluşturma becerisi de edineceksiniz. Fakat şimdilik böyle bir sorgu deyimi oluşturmaya gerek yok: Access, çocuklar listesindeki Adı değerlerini seçerken, bunların Aile Sıra No değeri Aile tablosunda Aile Sıra No değerine denk gelmeyen kayıtları seçmeyecektir. (Aile tablonuzda çocuksuz Istanbullu dostlarınız, Çocuklar tablosunda da Istanbullu ailelere mensup olmayan çocuklar bulunmasını sağlayın, ki BSS'in gerçekten işleyip işlemediğini sınayabilelim.) Şimdi sorgu tasarım penceresinde Şehir sütununda Ölçüt satırına "Istanbul" yazın. Sorgu sonucu oluşacak yeni tablomuzda iki ayrı Aile Sıra No sütununa gerek olmadığı için Çocuklar tablosundan alınacak Aile Sıra No sütununun Görüntüle satırındaki işareti kaldırabiliriz; fakat BSS'in tablonun ilişki bağından nasıl yararlandığını görmek için şimdilik bu işareti kaldırmayın. Özetle, Access 2000 BSS sihirbazının tasarımına sadece Şehir alanında Ölçüt olarak "Istanbul" kelimesini eklemiş olduk. Bu sırada Access 2000'in araç buçuğunda ünlem işareti şeklinde bir simge belirdiğini görüyor musunuz? "Çalıştır" isimli bu araç, Access 2000'e "Bu sorguyu icra et ve sorduğum sorunun cevabını bana tablo alarak göster!" komutunun kısayoludur. Şimdi bu simgeyi tıklayalım.
İşte sorumuzun cevabı:
Aile listemizde yer alan Şehir alanındaki değer "Istanbul" olan ve Çocuklar tablosunda kendilerine ait çocuk bulunan dostlarımızın listesi! Access ile çalışma becerinizi arttırdıkça, her çocuğu mensup oldukları aile ile aynı satıra "Çocuk 1," "Çocuk 2" ... şeklinde yeni sütunlar halinde sıralamayı da sağlayabilirsiniz. Bu sorgunun verdiği sonuçları doğru bulmuyorsanız, tekrar tasarım görünümüne dönebilirsiniz. Bunun için Access 2000 araç çubuğunda tasarım görünümü simgesini tıklayın. Sorgunun tasarımında istediğiniz değişikleri yaptıktan sonra Çalıştır simgesini tıklayabilirsiniz. Sorgunun istediğiniz sonucu verdiğini gördükten sonra kapatmaya kalktığınızda Access 2000 sorguyu veritabanı dosyasının içinde kaydededecektir.
Bir BSS tasarlamaya çalıştığınız sırada seçtiğiniz tablolar ilişkili değilse, Access 2000 sizi uyarır ve bu ilişkiyi kurmadan devam etmek istemez. Sorgu tasarımı sırasında seçtiğiniz tablolar arasındaki ilişki çizgisini silerek sorguyu çalıştırırsanız, anlamlı olmayan sonuçlar alırsınız.
Verilerimizi, kelime işlem programının içinde tablolar oluşturup, bu tabloların içine yazmıyorsak, bunun bir nedeni olabilir: Verişlem programlarının sorgu aracı. Sorgu veya Query, veritabanı fikri ortaya atıldığı günden beri var. Hatta, veritabanı dosyalarının, diğer bilgisayar kayıt dosyalarından ayrışmasını sağlayan unsur, sorgudur. Bir veritabanı dosyasındaki bilgileri sorgulama ve bu verilerden yeni bilgiler elde etme ihtiyacı o kadar belirgin hale geldi ki, bilgisayar mühendisleri sırf bu iş için bir dil bile icad ettiler: Sorgu Dili (Query Language).
Ne var ki, veritabanı biçimi kadar sorgulama dili ortalığı kaplayınca, belli başlı bilgisayar donanım ve yazılım firmaları ve üniversiteler biraraya gelerek, bu kargaşaya son vermek üzere kolları sıvadılar; ve ortaya SQL (Structured-Yapılandırılmış Sorgu Dili) çıktı.
SQL'in Kısa Tarihi
SQL, 1980'lerin başlarında Sybase firması tarafından UNIX ortamı için geliştirildi. Microsoft firması, Sybase'den ruhsatını aldığı bu teknolojiye dayanan Microsoft SQL Server programını 1987'de Windows 3 için piyasaya sürdü. Ertesi yıl, MS, Sybase ve Ashton-Tate firmaları MSSQL-Server'nın OS/2 sürümünü ortaklaşa hazırladılar ve daha sonra IBML'in de katıldığı bu çaba 1991'e kadar sürdü. Ashton-Tate'in bu birlikten 1990'da çekilmesi üzerine, Sybase ve MS yeni bir anlaşma yaparak, dili ve Server'ı, Windows NT ortamı için birlikte geliştirmeye başladılar. Bu çabanın sonucu SQL Server programı oldu. Bu program, bugün 7'nci sürümündedir.
Bir taraftan endüstri çapında geçerli bir teknoloji ve bu teknolojinin başlıca aracı olan bir dilin adı olarak SQL, diğer taraftan Microsoft firmasının bu teknoloji ve dili kullanan bir programının adında (SQL Server) kullanıldığı için, sadece Microsoft'a ve Windows ortamına ait sanılabilir. Bu doğru değildir. SQL, bugün piyasada bulabileceğiniz belli başlı veritabanı oluşturma ve veri-işlem programlarının ortak dilidir. Microsoft Access, 1992 yılında dünyaya geldi; ve ilk günden itibaren tek başına bir veritabanı oluşturma ve işleme programı olarak değil, fakat daha büyük veritabanı dosyalarına, veri bankalarına bağlanabilen ve oradaki verileri işleyebilen bir program olarak tasarlandı. Access 2000, Access Projesi (Dosya menüsünden Yeni maddesini ve açılan şablon kutusunda "Proje (Yeni Veritabanı)" adlı simgeyi tıklayın) dosyaları oluşturarak, SQL Server dosyalarına ulaşabilir; bu dosyalarda SQL sorguları çalıştırabilir.
İyi bir Access kullanıcısı, bu programla büyük veritabanı mimarisine adam atabilir; ileri düzeyde veri-işlem tekniklerini öğrenebilir. Veri Madenciliği (Data Mining) teknolojileri, Online Analytical Processing (OLAP) teknikleri ve günümüzde veri yönlendirmeli Web uygulamaları, SQL'e dayanan gelişmelerdir. Access'te öğreneceğiniz SQL, size bu teknolojilerie ilk adımı atmayı sağlayacaktır.
Basit Sorgu
Access'te SQL'e ilk adım ise daha önce gördüğümüz Süzme işleminin son bölümünde kısaca sözünü ettiğimiz Gelişmiş Süzme/Sıralama aracı ile atılabilir. Aslında Access'te yaptığımız seçme veya Form yoluyla süzme işlemleri, bir sorgu işlemidir; ancak bu sorgunun SQL komutunu (veya Access'in kullandığı kelimeyle, "deyimini") Access kendisi oluşturur. Gelişmiş Süzme/Sıralama (GSS), diğer süzme işlemlerine göre "ileri" sayılırsa da, bir sorgu deyimi (SQL komutu) yazmanın yanında basit sayılabilir. Bu sebeple, tabir yerinde ise Access'in desteklediği bir sorgu geliştirme işlemi olan GSS'yı sorguya giriş konusu olarak ele alabiliriz. GSS'yı kavradığımız anda sorgu tekniğini kavramış oluruz. Access'in sorgu tekniği ise daha genel SQL'e giriş sayılır.
GSS'nin bir sorgu aracı olarak sınırlamaları vardır. Sadece bir tablonun içerdiği verilerle çalışabilir; birden fazla tablo veya başka sorguların sonuçlarını kullanamaz. Sonuç itibariyle GSS de bir tabloda belirli ölçütleri karşılayan kayıtları görünteleme aracından başka bir şey değil; birden çok tabloda sorgu yapmak için gerçek sorgu aracını kullanıp, gerçek SQL komutları yaszmamız gerekir. GSS'te verilere sadece basit sorular sorabiliriz. (Daha gelişmiş sorgular için, gerçek sorgu aracını kullanırız.) GSS ile yapacağımız süzme sonunda görüntülenen kayıtların bütün alanları görüntülenir; oysa gerçek sorguda ortaya çıkacak yeni tablo veya formda hangi alanlar olsun istiyorsanız o alanlar olur. Bu sınırlamalarına rağmen (belki de bu yüzden) GSS, Access'te sorguya giriş için mükemmel bir adım sayılır. Şimdi bir tabloyu açın ve Kayıtlar menüsünden önce Süz, sonra Gelişmiş Süzme/Sıralama maddesini seçin.
Bu, eğer başta tablo ekleyebilseydik, sorgu hazırlama penceresinin ta kendisi olurdu. GSS, belirttiğimiz gibi sadece bir tablo ile çalışır; ve o tablo da seçilmiş olarak karşımıza gelir. Bu penceresi inceleyelim. Üstte, sorguda (pardon, süzgeçte) kullanılacak tablo yer alır. Buraya alan listesi denir. Altta ise süzgeci oluştururken kullanacağımız, şimdilik boş olan, sorgu tasarım kılavuzu yer alır. Burada sadece sözme amacıyla yararlanacak da olsak oluşturacağımız "şey" gerçekten bir sorgudur. Bu bölümde, Alan isimli birinci satırın birinci sütundaki kutusunun içini, sağda seçme oku belirince oku tıklayın: yukarıda alan listesinde yer alan alan adlarının burada sıralandığını göreceksiniz.
Sorgu, burada olduğu gibi ileri düzeyde süzme işlemi için bile olsa, "veriye soru sorulması" anlamına gelir. GSS'de bir sınıftaki öğrencilerin sınav notlarını içeren tablomuza örneğin "Son üç sınavda 4,5'dan aşağı not almış öğrenciler kimler?" diye sorabiliriz. Ya da yemek tariflerini derlediğimiz bir veritabanında, "Kebaplar" tablosuna "İçinde biber olmayan ve kıyma ile yapılmayan kebaplar hangileri?" sorusunu yöneltebiliriz. Müzik kaset ve CD'lerinizin veritabanındaki "Türküler" tablosuna "Yavuz Bingöl'ün 1996'dan sonra çıkmış kaset ve CD'leri hangileri?" diye sorabiliriz. Ya da elimizdeki Adres Defteri veritabanında Aile tablosuna "Istanbul ve Niğde'de oturan ve kart yollamam gereken dostlarım kimler?" şeklinde bir soru yöneltebiliriz.
Bunun için, Alan sırasının birinci sütundaki kutusunun seçme okunu tıklayarak, alan listesinden Şehir'i seçmemiz gerekir. Sonra, GSS'nin sadece süzme değil aynı zamanda sıralama yaptığını hatırlayarak, ikinci sıradaki Sırala kutusunun sağındaki seçme okunu tıklayarak, Artan, Azalan ve Sırasız seçeneklerinden Artan'ı seçelim. Ve sıra geldi, süzme için uygulatacağımız ölçütleri belirlemeye. Ölçüt satırının içini tıklayıp "Istanbul" yazıyoruz. Tırnak işaretlerini siz koymazsanız, Access koyar. Istanbul VE Niğde'de oturan dostlarımızı birlikte seçmek için, alttaki VEYA satırına da "Niğde"yazalım. Buraya kadar, tabloya soracağımız sorunun birinci bölümünü sormuş olduk: Istanbul ve Niğde'de oturanlar. Şimdi sorgunun ikinci bölümüne geliyoruz: Kart göndermem gerekenler. İkinci bölümdeki veritabanı alıştırmasını yaptıysanız, "KartYolla" alanının türünü "Evet/Hayır" yaptığımızı hatırlıyor olmalısınız. Şimdi, Alan satırının ikinci sütununda KartYolla alanının seçin; ("Evet" değerlerinin sıraya sokulmasına gerek olmadığına göre ikinci satırı atlayabilirsiniz) ve Ölçüt sarımına Evet yazın. Araç çubuğundaki Süzgeçi Uygula simgesi tıklayın ve tablonuzun sadece Istanbul veya Niğde'de oturanlardan kendilerine kart yollamam gerekenleri gösterdiğini, diğerlerinin süzüldüğünü ve süzgecin diğer tarafında kaldığını göreceksiniz.
Kendi kendinizi kutlayabilirsiniz: çünkü sadece Access'in gelişmiş süzme ve sıralama aracını kullanmakla kaldık; SQL komutu yazmaya da ilk adımı attık. Şimdi artık Access'te ciddi sorgulama işleri yapabiliriz.
Gerçek Sorgu: Basit Seçme
"Sorgu, veriye soru sormaktır!" demiştik. Kimi zaman bir tablonun cevaplayabileceği soruları, süzme ve hatta sıralama ile çözümleyebiliriz. Fakat elde iki veya daha çok tablo varsa ne yapanız? Diyelim ki, siz sadece bir sınıfın değil, beş ayrı sınıfın öğretmenisiniz ve sınıflarınızda başarı oranını etkileyen garip bir eğilim farkettiniz. Sizin derslerinizde kız öğrenciler genellikle başarısız oluyor. Sadece bir sınıfın öğretmeni olsanız, bu kuşkunuzun yerinde olup olmadığını sınamak için iki süzme işlemi size sonucu verirdi. (Nasıl?) Fakat beş ayrı sınıf söz konusu olunca, her tablonun kendi içindeki yüzdeler, anlamlı olmayabilir. Size bütün tablolardan seçme-süzme yapan bir araç gerekiyor. Ya da beş tabloya birden soru sormanızı sağlayacak bir araç. Bu aracın adı Sorgu'dur.
Access'in Sorguları
Access 2000, bize altı ayrı sorgu türü veriyor. Bunlardan Basit Seçme sorgusu, biraz önce ele aldığımız Gelişmiş Süzme/Sıralama aracının birden fazla tablo kabul edebilenidir. Çapraz sorgu, verileri gruplandırarak, bunlar için sayım, toplam ve ortalama gibi hesapları yapar. Örneğin öğrencileri cinsiyetlerine ve derslere göre gruplandırıp, aldıkları not ortalamalarını göstermek., çapraz tablo yapmaktır. Çapraz sorgu bir tabloda çalıştığı için, örneğin öğrencilerinizin notları derslere göre ayrı tablolarda ise bunları bir tabloda basit seçme sorgusuyla birleştirmeniz gerekir. Tablo yapma sorgusu, seçme sorgusundan farklı olarak, çalıştığı zaman ortaya bir tablo penceresi çıkmaz; Access, sizden daha önce aldığı isimle bir tablo oluşturur. Bu tablo veritabanının parçası haline gelir. Oysa diğer sorguların sonuçları ancak sorgu çalıştığı sırada vardır. Güncelleştirme sorgusu, sorgu tasarımı sırasında verdiğiniz bir sabit değeri veya verdiğiniz bir deyimin o sırada bulunacak sonucunu, tayin ettiğiniz bir alana yazar. Bu, "Bul-Değiştir" gibi basit bir araç olmayıp, her kaydı, belirli bir formüle veya kıydın kendi içindeki bir değere göre yeniden hesaplayabilir. Ekleme ve Silme sorguları da güncelleştirme sorgusu gibi, ya farklı tabloların kayıtlarını birbirine ekler, ya da tablolardaki kayıtları siler. Bunların dışında tasarım sırasında yüklediğiniz işlevlerin bir sonucu olarak bir sorgu Parametre sorgusu (verdiğiniz görevi yapabilmek için kullanıcıdan bir değer girmesini isteyen sorgu), SQL Sorgusu (SQL komutlarını kullanarak birleşim, doğrudan sorgu, veri tanımla ve alt sorgu gibi veritabanınızı ODBC yoluyla dışarıdan kullanacak kullanıcıları gözönünde tutarak hazırladığınız sorgular) ve otomatik arama sorgusu (yeni bir kaydın bazı alanlarının otomatik olarak doldurulmasını sağlayan sorgu, AutoLookup sorgusu) diye de adlandırılabilir.
Basit Seçme Sorgusu (BSS) dışındaki sorgular, ileri düzeyde Access bilgisi ve hatta bir ölçüde Programlar İçin Visual Basic for Applications (VBA) bilgisi gerektirebilir. BSS'yi iyi kavrayarak, bu ileri düzeydeki sorgular için mükemmel bir başlangıç yapabilirsiniz. BSS'in temel özelliklerini sıralarsak, şunlar karşımıza çıkıyor:
1. Sorguda birden fazla tablo kullanabilirsiniz; tablolar arasında oluşturduğunuz ilişkiden yararlanabilirsiniz.
2. Sorgu sonucu sadece istediğiniz alanları görüntüleyebilir; bu sırada gerekli olmayan sütunları yeni sorgu sonucu tablosuna almayabilirsiniz.
3. Sorgu sonucu oluşacak tabloda alanları istediğiniz sütun sırasına sokabilirsiniz.
4. Seçme işlemi sonucu kaç kaydın görüntülenmesini istiyorsanız, o kadar kayda yer verebilirsiniz.
5. BSS (ve diğer) sorguları icra ettikten sonra, sorguya konu olan tabloların değerlyeri değişmez; başka bir deyişle sorgular tabloları sadece "okur," içeriğini değiştirmezler. Bir sorgu işledikten sonra tablo oluşturuyorsa (Tablo Yapma Sorgusu ise) ortaya yeni bir tablo çıkar. Sorguyu tekrar çalıştırdığınızda bu tablo yeniden yazılır ve Access 2000, Özelleştir kutusunda yaptığınız uyarı ayarlarına göre sizi uyarabilir. İkinci bölümdeki Adres Defteri alıştırmasını yaptıysanız, bu veri tabanını açın ve birlikte bir BSS oluşturalım. Adres Defteri veritabanını oluşturmadı iseniz, aşağıdaki adımları kendi veritabanınıza uygulamak zorundasınız. Burada yapmak istediğimiş iş veya Access 2000'e sormak istediğimiz soru şu: Istanbul'da oturan ve çocuğu olan dostlarımız kimler, çocuklarının adı ne? Veritabanı dosyası açıldığında, veritabanı penceresinde, nesneler listesinde Sorgular satırını tıklayın. Sorgular penceresinde "Tasarım görünümünde sorgu oluştur" ve "Sihirbazı kullanarak sorgu oluştur" şeklinde iki kısayol göreceksiniz. Pencerenin araç çubuğundaki Yeni düğmesini tıklarsanız, karşınıza daha çok imkan sunan bir sihirbazın ilk adımını içeren bir kutu açılacaktır. Bu kutudaki Basit Sorgu Sihirbazı maddesi, Sorgu nesnesi penceresindeki "Sihirbazı kullanarak sorgu oluştur" kısayolu ile aynı sonucu verir. İster Yeni'yi tıklayıp açılan kutudan Basit Sorgu Sihirbazı maddesini seçin, ister "Sihirbazı kullanarak sorgu oluştur" kısayolunu tıklayın.
BSS sihirbazının ilk penceresinde hangi alanların sorguda bulunmasını istediğinizi belirtmeniz gerekir. Bir sorgu sadece tablodan değil sorgu sonucundan da seçme yapabilir; dolayısıyla sol üstteki seçmeli listede veritabanınızda mevcut bütün tablolar ve sorgular sıralanır. Bu listede seçilmiş olan tablo veya sorgunun içerdiği alanlar ise sol altta kullanılabilir alanlar listesinde yer alır. Veritabanımıza soracağımız sorunun birinci bölümü "Istanbul'da oturan" dostlarımızın seçilmesi olduğuna göre, bu kişilerin kayıtlı olduğu Aile tablosunu seçmek zorundayız. Bu alanlardan hangileri BSS sonucu oluşturulacak tablomuzda yer alsın istiyoruz? Bir kere dostlarımızın adını ve soyadını seçmemiz gerekir. Seçilecek kişilerin tümünün Istanbul'da oturanlar olması için Şehir alanının da seçilmesi şart. Bunu yapmak için arzu ettiğimiz alanın adını bir kere tıkladıktan sonra ortadaki düğmelerden en üstte olan sağa doğru tek oklu düğmeyi tıklıyoruz. Soldaki alanların tümünün sorgu sırasında kullanılabilir olmasını isteseydik, ikinci sıradaki iki oklu düğmeyi tıklamamız gerekirdi. Bir alanı yanlışlıkla sağa geçirirsek, üçüncü sıradaki sola doğru tek oklu düğmeyi tıklayarak sorguda kullanabileceğimiz alanlar listesinden çıkartırız. Bu alanların tümünü sorgu listesinden çıkartmak için el alttaki iki oklu düğmeyi tıklayabiliriz.
Veritabanına sorduğumuz sorunun ikinci bölümü, Istanbul'da oturan dostlarımızdan sadece çocukları olanların seçilmesini, üçüncü bölümü ise çocukların adlarının da listelenmesini gerektirdiğine göre, bize Çocuklar tablosu ve bu tablodaki çocuk adları alanı da gerekiyor. Şimdi Tablolar ve sorgular kutusunun seçme okunu tıklayarak açılan listeden Çocuklar tablosunu seçelim, sonra da bu tablonun Adı adlı alanını sağa aktaralım. Ama hemen İleri düğmesini tıklamayın.
Şimdi bir an için kendimizi Access 2000'in yerine koyalım: Biraz sonra bir seçme işlemi yapacağız; çocuğu olan ve Istanbul'da oturan kişileri seçeğiz. Istanbul'da oturanları seçmek kolay: Eğer Şehir alanındaki değer "Istanbul" ise bu kişiyi seçebiliriz. Peki bu kişilerin çocuğu olup olmadığını nasıl bilebiliriz? Veya şöyle soralım: bu kişilerin çocukları varsa bunları Çocuklar tablosunda nasıl belirleyebiliriz? Bu iki tablo arasında ilişki sağlayan alanla! Veritabanı tasarımında en zor nokta, tablolarda gereksiz yere tekrarı önlemek amacıyla alanları başka tablolara aktarmak gerektiğinden söz ettiğimiz sırada, tablolar arasında ilişki kurmamız gerektiğini belirtmiştik. İkinci bölümden hatırlıyorsanız, Aile tablosuyla Çocuklar tablosu arasındaki ilişkiyi, yani hangi çocuğun hangi aileye mensup olduğunu Aile Sıra No alanındaki bilgiyi iki tabloda ortak kullanarak biliyoruz. Başka bir deyişle bir çocuğun Aile Sıra No alanındaki değer, bu çocuğun hangi ailenin üyesi olduğunu gösteriyor. Sorgu sırasında Access 2000, şöyle düşünebilir: "Hımm. Istanbul'lu bir kişiyi seçeyim; sonra bu kişinin Aile Sıra No alanındaki değeri, Çocuklar tablosundaki aynı adlı alanda arayayım; eğer bu iki değer aynı ise bu çocuğun adını alıp, Istanbullu kişi ile birlikte kaydedeyim." Access'in düşündüğünü uygulayabilmesi için, ona her iki tablodan Aile Sıra No alanını da vermemiz gerekir. O halde önce açık olan Çocuklar tablosunun, sonra da yeniden Aile tablosunu seçerek, Aile Sıra No alanlarını sağa aktarın. Bu kutuda işimiz bittiğine göre Tamam'ı tıklayabilirsiniz. (Sorgu kaç tablodan kaç alan seçmeyi gerektiyorsa, o kadar alan seçebilirsiniz. Buradaki örnek bu alanları gerektirdiği için burada duruyoruz; sizin örneğiniz başka tablolardan başka alanlar gerektiyorsa, seçmeye devam edin.)
Basit sorgu sihirbazının ikinci penceresi, sorgu sonucu oluşturulacak tabloda kaç kayıt olacağını belirler. Varsayılan değer, seçtiğiniz tablolardaki tüm kayıtların sorgu sonucu oluşacak tabloya alınmasıdır. Fakat diyelim ki size sorgu sonucu oluşacak tablonun ilk 5, 25 veya 100 kaydını içeren özet bir tablo da oluşturabilirsiniz. Özet tablo için Özetk seçeneğini seçin ve Özet Seçenekleri düğmesini tıklayın. Bu iş bittikten sonra veya Ayrıntılı seçeneğini seçerek, İleriyi tıklayabilirsiniz. Üçüncü pencerede yeni sorgunuza isim vermeniz, Son'u tıkladığınızda sorgunun icra edilmesini mi, yoksa sorguda sihirbazın yapmadığı değişiklikleri yapmak üzere tasarım görünümünün açılmasını mı istediğinizi belirtmeniz gerekir. Burada yardım isteyip istemediğinizi belirteceğiniz bir başka seçenek daha var. Tasarımı güç sorgular yaptığınızda, Access 2000'in yardım penceresinin açılmış olması size kolaylık sağlar. Şimdi, sorgunun tasarımı ile ilgili işlerimiz bitmediği için ikinci seçeneği işaretleyerek Son'u tıklayalım.
Access 2000, seçtiğiniz iki tabloyu sorgu tasarım penceresinin üst bölümünde gösteriyor. İki tablo arasındaki ilişki çizgisine dikkat edin; bu ilişkiyi ikinci bölümdeki alıştırma sırasında kurmuştuk. Access, seçtiğiniz altı alanı, değerleri ne olursa olsun, bütün kayıtları ile seçmeyi (ve bunu yaparken iki tabloyu birleştirmeyi) sağlayan bir sorgu tasarımı öneriyor. Bütün alanların seçildiğini, sorgu tasarım penceresinin alt yarısındaki kılavuzda, Alan satırındaki alan adlarından anlıyoruz. Bu satıra yazılan alan adlarını inceleyin; tablo adı ile tablonun alan adı nasıl birleştiriliyor? İkinci satırda ise tablonun adı belirtiliyor. Sırala satırının boş bırakıldığına dikkat edin. Göster satırındaki kutuların işaretli olması bu alanın sorgu sonucu oluşturulacak tabloda gösterileceği anlamına geliyor. Ve son olarak Ölçüt satırlarının boş olduğuna dikkat edin. Biz sorgumuzun sadece çocukları olan Istanbulluları kapsamasını istiyorduk. O halde, Şehir alanının sütununda, Ölçüt satırına "Istanbul" yazmamız gerekiyor, ki sadece Istanbullular seçilsin. Peki bunlar arasından çocukları olanları nasıl seçeğiz, Access ile çalışma konusunda ustalığınız ilerledikçe, bu tür şartlı seçmeleri (SQL deyiminde "eğer" şartı geçen sorguları) oluşturma becerisi de edineceksiniz. Fakat şimdilik böyle bir sorgu deyimi oluşturmaya gerek yok: Access, çocuklar listesindeki Adı değerlerini seçerken, bunların Aile Sıra No değeri Aile tablosunda Aile Sıra No değerine denk gelmeyen kayıtları seçmeyecektir. (Aile tablonuzda çocuksuz Istanbullu dostlarınız, Çocuklar tablosunda da Istanbullu ailelere mensup olmayan çocuklar bulunmasını sağlayın, ki BSS'in gerçekten işleyip işlemediğini sınayabilelim.) Şimdi sorgu tasarım penceresinde Şehir sütununda Ölçüt satırına "Istanbul" yazın. Sorgu sonucu oluşacak yeni tablomuzda iki ayrı Aile Sıra No sütununa gerek olmadığı için Çocuklar tablosundan alınacak Aile Sıra No sütununun Görüntüle satırındaki işareti kaldırabiliriz; fakat BSS'in tablonun ilişki bağından nasıl yararlandığını görmek için şimdilik bu işareti kaldırmayın. Özetle, Access 2000 BSS sihirbazının tasarımına sadece Şehir alanında Ölçüt olarak "Istanbul" kelimesini eklemiş olduk. Bu sırada Access 2000'in araç buçuğunda ünlem işareti şeklinde bir simge belirdiğini görüyor musunuz? "Çalıştır" isimli bu araç, Access 2000'e "Bu sorguyu icra et ve sorduğum sorunun cevabını bana tablo alarak göster!" komutunun kısayoludur. Şimdi bu simgeyi tıklayalım.
İşte sorumuzun cevabı:
Aile listemizde yer alan Şehir alanındaki değer "Istanbul" olan ve Çocuklar tablosunda kendilerine ait çocuk bulunan dostlarımızın listesi! Access ile çalışma becerinizi arttırdıkça, her çocuğu mensup oldukları aile ile aynı satıra "Çocuk 1," "Çocuk 2" ... şeklinde yeni sütunlar halinde sıralamayı da sağlayabilirsiniz. Bu sorgunun verdiği sonuçları doğru bulmuyorsanız, tekrar tasarım görünümüne dönebilirsiniz. Bunun için Access 2000 araç çubuğunda tasarım görünümü simgesini tıklayın. Sorgunun tasarımında istediğiniz değişikleri yaptıktan sonra Çalıştır simgesini tıklayabilirsiniz. Sorgunun istediğiniz sonucu verdiğini gördükten sonra kapatmaya kalktığınızda Access 2000 sorguyu veritabanı dosyasının içinde kaydededecektir.
Bir BSS tasarlamaya çalıştığınız sırada seçtiğiniz tablolar ilişkili değilse, Access 2000 sizi uyarır ve bu ilişkiyi kurmadan devam etmek istemez. Sorgu tasarımı sırasında seçtiğiniz tablolar arasındaki ilişki çizgisini silerek sorguyu çalıştırırsanız, anlamlı olmayan sonuçlar alırsınız.



