BİLGİSAYAR KULLANIMI Microsoft Office Access Veri Tabanı Yönetim Sistemi (VTYS) Programı Veritabanları, belirli bir uygulamaya ait verileri kayıt altında tutulmasını sağlar. Fakat verileri sadece bir veri tabanı içerisinde tutmak, yeterli olmayacaktır. Veriler yeri geldiğinde güncellenmeli, silinmeli, gerektiğinde içlerinden bazı verilerin bulunması için sorgulamalar yapılmalı. Uygulamaların gerektirdiği durumlarda, birden fazla farklı şekilde verileri kayıt altında tutacak şekilde veri tabanlarına ihtiyaç duyulabilir, hatta bu veri tabanları arasında ortak olan veriler sayesinde ilişkiler kurulabilir. Anlatılan işlemlerin, organize edilmesini sağlayacak olan sistemlere Veri Tabanı Yönetim Sistemleri denir. Microsoft Office Paketi içerisinde var olan Access Veri Tabanı Yönetim Sistemi, bu doküman içerisinde gerekli olan özellikleri uygulamalar üzerinde anlatılacaktır. Microsoft Office Access Veri Tabanı Yönetim Sistemi Programının Açılması Access programının açılması için iki ayrı yol izlenecektir. İlk olarak “Başlat” izlenecek yoldan, Microsoft Office alt menüsü altından Microsoft Office Access 2003 seçildiğinde program açılacaktır. Şekil 115 Access Veri Tabanı Yönetim sisteminin Açılması İkinci yol olarak ise, başlat içinde yer alan “Çalıştır” alt işleminden açılan pencereye, “MSACCESS.EXE” yazıp çalıştır’a tıklamak. İki uygulamada da Access veri tabanı yönetim sistemi açılacaktır. Şekil 116 Çalıştır penceresinden Access programını çalıştırma Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 94 BİLGİSAYAR KULLANIMI Şekil 117 Access Programı ilk açıldığında Microsoft Office Access VTYS’de Veri Tabanı Oluşturma Veritabanı, verileri tutmak için oluşturacağımız tabloları; oluşturacağımız tablolar üzerinden yapacağımız sorguları; oluşturacağımız tablolara ait işlemleri yürüteceğimiz formları; sonuç verileri istediğimiz formda çıktı ortamına almamızı sağlayan raporları muhafaza eden, onlar üzerinde işlemleri yapıp yönetmemizi sağlayan yönetim birimidir. İşlemlerimizi burada saklar tekrar onlara ulaşmak istediğimizde aynı veri tabanı üzerinden açacağımız yönetim birimidir. Veri tabanı oluşturmak için, açtığımız Access programından Dosya menüsünden yeni alt menüsü seçilir, seçim sonrasında ekranın sağ tarafında açılan pencerede, Boş Veritabanı üzerinde tıklandığında bize veri tabanımızın ismini ve nereye kaydetmek istediğimizi sorar. Şekil 118 İlk Veri tabanı oluşturma işlemi Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 95 BİLGİSAYAR KULLANIMI Şekil 119İlk Veri tabanı Yukarıdaki şekli incelediğimizde ilk veri tabanının oluşturma aşamalarının resimleri gözükmektedir. Sağdaki resmi incelediğimizde, veritabanımızda oluşturabileceğimiz nesnelerimiz gözükmekte. Hangi nesneyi oluşturmak istiyorsak, o sekmeyi seçip, o nesneye ait pencere açılır ve o nesneye ait işlemler yapılmaya başlanır. İlk olarak yapmamız gereken verilerimizi saklayacağımız tabloları oluşturmak. Veri tabloları Oluşturma Aşaması Veri tabloları, yapacağımız uygulamaya ilişkin verilerimiz saklayacağımız tablolarımızdır. Veri tablolarımızı oluştururken kullanılacak olan yöntemlerden biri, Tasarım özelliğinden yararlanarak oluşturulan tablolardır. Şekil 120 Tasarım görünümünde veri tablosu oluşturma. Tasarım görünümünde tablo oluştur yazısı üzerine çift tıkladığımızda açılacak olan pencerede verilerimizin özelliklerini kaydedeceğimiz sahalar, bu sahaların veri tipleri ve bu sahalara ait veriler (metaveri) yani açıklama cümleleri girilecek boş hücreler var olan bir sayfa açılır. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 96 BİLGİSAYAR KULLANIMI Oluşturduğumuz “ilkveritabani” isimli veri tabanı içersinde tasarım tuşuna tıklandığında, oluşturulacak olan veri tabanında tutulacak olan sahaların ve her bir sahanın veri tipinin ne olacağı belirtilecek bir pencere açılır. Şekil 121 Tablo tasarımı Saha isimleri, verilerimizin kayıt altına alınacak olan özellikleridir. Her bir verinin kaydı yapılırken belirtilen özelliklerin değerleri kayıt altına alınacağı için bu özellikleri (sahaları) belirleyip ona göre tablo tasarımı yapılır (şekil 89’da en sol hane sahaların adlarının giriş yeri). Her bir özellik farklı veri tipinde olabilir, özelliklerin (sahaların) girilecek veri türüne göre her bir saha kendi veri tipi seçilir (Şekil 89’da orta kısım). Metin: Alanda kısa yer işgal edecek veriler bu veri türünde tutulur. Örneğin ad-soyad bilgileri, firma isimleri v.b. gibi. Yine telefon numarası gibi üzerinde işlem yapılması gerekmeyen sayısal bilgiler de (gerekirse “giriş maskesi” özelliğiyle tanımlanarak) bu veri türünde tutulabilir. Bu alana 255 karaktere kadar veri girilebilir. Ancak veritabanının gereksiz yere şişmemesi için alanın özelliğine göre (alan özelliklerini ve değiştirmeyi aşağıda göreceğiz) bu karakter sayısını sınırlı tutmakta fayda vardır. Mesela kişinin adını gireceğimiz bir alanın 255 karakter uzunluğunda yer işgal etmesi yerine en fazla 30 karakterlik bir yer tutması daha uygun olacaktır. -Not: Genelde uzun metinleri yazacağımız alanlar bu veri türünde tutulur. Örneğin adres bilgileri, tanıtım yazıları. (Bir alan için “Metin” veri türünün uzunluğu yetmiyorsa da bu veri Şekil 122 Veri Tipleri türü seçilebilir). Bu tür alanlara 65535 karaktere kadar bilgi girilebilir. -Sayı: Tabloda üzerinde işlem yapılabilecek sayısal değerlerin girilebileceği alan türüdür. Örneğin kişinin yaşı, satılan malın miktarı gibi alanlar bu veri türüyle tutulabilir. -Tarih/Saat: Tarih ve saat türündeki bilgiler için kullanılır. Örneğin günün tarihi, doğum tarihi gibi alanlar bu veri türünde tanımlanır. -Para Birimi: Parasal değerleri tutacağımız alanlarda bu veri türü tanımlanır. Bu tür alanlara 15 basamak tamsayı, ondalıktan sonra da 4 basamak bilgi girilebilir. -Otomatik Sayı: Benim en önem verdiğim veri türlerinden birisidir. Bu tür alanlardaki sayı değeri girilen her kayıt için otomatik olarak sırayla artarak gider. Oluşturacağımız her tablo için bu şekilde bir otomatik sayı alanı tanımlamakta fayda olduğunu düşünmekteyim. Zira veritabanındaki tablolar arasındaki ilişkiler genel olarak bu alanlarla kurulur ve birbirine bağlanarak veri tutarsızlıkları, güncelleme yanlışlıklarının ve hataların önüne geçilir. Ben bu alana ad verirken genelde “KimlikNo”, “sirano”, “idno”, “KayitNo” gibi isimler vermeyi tercih ediyorum. -Evet/Hayır: Mantıksal alan türüdür. İki ihtimalli bilgiler için kullanılır. Örneğin askerliğini yaptı/yapmadı, evli/evli değil, doğru/yanlış gibi bilgiler burada tutulur. -Köprü: İnternet üzerinden bağlantı kurulacak web adresleri için tanımlanır. Örneğin bir kişinin e-posta adresi bu alanda tutulabilir. -OLE Nesnesi:Veritabanına resim, ses, film gibi nesnelerin eklenmesi amacıyla kullanılan veri türüdür. Örneğin bir Öğr. Gör. programında Emre İNCEpersonelin fotoğrafları Bilgisayar personel bu veriUygulamaları türüyle oluşturulmuş bir alanda tutulabilir. 97 BİLGİSAYAR KULLANIMI Şekil 123 Örnek Tablo Tasarımı Yukarıdaki resmi incelediğinizde, öğrencilere ait verilerin girileceği düşünülerek, öğrenci tablosu tasarlanmıştır. Öğrenci veri tablosunda sahalar; sahalara ait veri tipleri; sahaların tanımları (metaverileri) yapılmıştır. Resimdeki örneği dikkatli incelersek, alan boyutu kısmı “Uzun tamsayı” olarak tanımlanmış bu sayısal verinin kendi içinde farklı veri tipleri olabileceği anlamında olan ayrı bir tanımdır. Alan boyutu, yazısının yanındaki kısımda gözüken oka tıklandığında, yandaki görüntüye benzer bir ekran açılacak. Bu ekranda, ne tip sayısal veri girecek isek onu seçmeliyiz. Ondalık basamak sayısı kısmı, sayısal veri tiplerinde eğer verimiz ondalıklı ise, virgülden sonra kaç hane gireceğimizi belirtmek için gerekli olan kısım. Resim yazısı veri tablomuzu açtığımızda, sahanın başlık kısmında gözükmesini istediğimiz yazıyı yazarız. Geçerlilik kuralı, kısmında verimize getirebileceğimiz kısıtlamalar varsa bu kısımda bunları girebiliriz. Yukarıdaki örnekte getirilen sınırlamada: >9999 And<100000 “Numara” sahasına girilecek olan verilerin 9999 den büyük olması ve 100000’den küçük değerler olması istenmiş. Geçerlilik metni kısmında ise veriler yanlış girildiğinde, ekrana çıkacak uyarı metninde ne yazılacağı belirtilmiş. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 98 BİLGİSAYAR KULLANIMI Şekil 124 Yanlış veri girildiğinde geçerlilik metnindeki yazı uyarı ekranındagözükecek. Giriş maskesi kısmı, metin ve tarih ifadelerinde var olacak bir özellik bu özellik sayesinde girilecek değerin yanlış girilmesi önlenecek ve veri tabanı içerisindeki verilerde bir tutarlılık sağlanmış olacak. Şekil 125 Giriş maskesi oluşturulması. Yukarıdaki şekilde giriş maskesi oluşturulmasına bir örnek vardır. Bu örnekte Telefon verisinin girişi için bir maske oluşturulmuştur. (999) 000 0000 Maskede kullanılan () Eğer istenirse veri tabanının da kayıt esnasında da gösterilebilir. Ama esas amaç o kısma girilecek olan veriyi ayırt etmektir. 9 değerinin anlamı veri girişinin zorunlu olmamasıdır. Fakat 0 değeri veri girişini zorunlu kılar. Tabloda anahtar saha belirleme Sahalarımızı oluşturup, onlara ait veri tiplerini belirledikten sonra en son ve en önemli iş veri tablomuzdaki anahtar sahayı belirlemedir. Anahtar saha, veri tabanımızda yapacağımız her bir kaydın tekil olmasını, kayıtların birbirinden ayrılmasını sağlar. Bu sayede veri tabanında yinelemeyi, yani iki kere aynı kaydın girilmesi önlemiş olacaktır. Anahtar sahayı seçerken tekrarlanmayacak bir veri olarak seçmeliyiz. Genelde devamlı artacak şekilde olan numaraların olacağı sahalar anahtar saha seçilir. Fakat bazen bu durumda bir saha yoksa, o zaman bir fazladan saha oluşturup o sahanın veri tipini otomatik saha olarak belirleriz. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 99 BİLGİSAYAR KULLANIMI Böylece her yeni bir kayıt girildiğinde sahadaki veri otomatik olarak artacaktır. Yada birden fazla sahayı seçerek hepsini birden anahtar saha seçebiliriz. Şekil 126 Anahtar saha seçimi Şekil 127 Birden fazla sahanın anahtar saha olmasına örnek Tablolara veri girilmesi Tablolara veri girilmesi için, ilk önce tablonun açılması (oluşturulan tablonun üzerine çift tıklamanız yeterlidir) gerekir. Tablo açıldıktan sonra, oluşturulan her sahaya veriler girilir daha sonra, ya alt kayda geçilir fare yardımı ile ya da tablonun alt kısmındaki * tuşuna basıldığında, girilen saha değerleri veri tablosuna kayıt yapılmış olacaktır. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 100 BİLGİSAYAR KULLANIMI Şekil 128 Veri tablosuna kayıt girilmesi Şekil 129 Kayıt girilmesi sonrasında tablonun durumu Tablonun sihirbaz yardımı ile oluşturmak istersek Sihirbaz Kullanarak Tablo oluştur seçtiğimizde aşağıdaki gibi bir pencere açılacaktır. Sağdaki resimde sihirbaz yardımı ile var olan örnek tablolardaki sahaları seçip > veya >> tuşlarına basarak bir veya birden fazla saha oluşturulup tablomuz tasarlanabilir. Sahalarını belirledikten sonra İleri tuşuna tıklandığında tablomuzun ismi ve anahtar sahamızı seçeceğimiz ekranlar karşımıza çıkacaktır. Bitir tuşu ile hazırlanan tablo oluşmuş olacaktır. Tablolar arasında ilişkilerin kurulması Tablolarda veri tutarlılığını sağlamanın en önemli yollarından birisi yukarıda anlatılan tablonun anahtar sahasının sağlanmasıdır. Bu sayede veri tekrarı önlenmiş olacaktır. Veri tabanımızda birden fazla tablo oluşturabilir ve bu tablolarda birbirlerinde var olan veriler kullanılabilir. Bu durumda bu verilerin doğruluğunu sağlamak, veri tabanlarındaki doğruluğu, tutarlılığı sağlayabilmek için, bu tip tablolar arasında ilişkiler kurulur. Bu ilişkileri Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 101 BİLGİSAYAR KULLANIMI sağlamak için ilişki kurulan tablolarda aynı veri sahalarına ihtiyaç duyulur. Ayrıca veri tabanında bunlar arasında ilişki (relation) kurulur. İlişkileri oluşturabilmek için, araçlar menüsünden ilişkiler yada araç çubuğundan ilişkile düğmesine basarak ilişkiler penceresi açılır. Şekil 130iliişkiler penceresinin açılması Pencere açıldıktan sonra Tabloyu göster isimli bir pencere açılır bu pencere, veri tabanı içerisinde olan tabloları listeler. Hangi tablolar arasında bir ilişki kurulacaksa o tablolar seçilip ekle tuşuna tıklanır. Şekil 131 İlişkilerin kurulacağı tabloların seçimi Seçilen tablolar, ilişkiler penceresine eklenir. Eklenen pencereler arasında ilişki kurmak için ilişki mantığına göre ve hangi tabloda ki veri hangi tabloda kullanılacağına göre ilişkiler kurulur. Hazırlanan örnek uygulamada bir okulda ki kütüphane bilgi sistemine benzer bir örnek uygulama tasarlandı. Buna göre öğrenci numarası ve kitap numarasına göre öğrencinin aldığı kitap kaydı, aldığı gün ile kayıt altına alınıp; kitabı geriye getirdiği gün ile kayıt güncelleniyor. Öğrencinin bilgi tutarlılığı, öğrenci tablosundan; kitap numaralarına ait bilgi tutarlılığı da kitap tablosundan sağlanacağına göre, ilişkiler bu sahalara göre tablolar arasında yapılacak. İlişki türü ise mantıklı düşünülürse, bir öğrenci birden fazla kitabı farklı zamanlarda alabilir olması, ilişkinin öğrenci veri tablosundan, kitap_öğrenci veri tablosuna doğru bire çok ilişki kurulmasını sağlar. Aynı mantık, kitap kitap_öğrenci tablosu arasında da oluşur. Her iki ayrı ilişkide bire – çok ilişki olarak adlandırılan ilişki veri tipine göre oluşturulur. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 102 BİLGİSAYAR KULLANIMI Şekil 132 Tablolar arası ilişkilerin oluşturulması İlişkileri kurabilmek için ilişki tipinin başladığı tablodan, ilişki kurulacak saha farenin sol tuşu ile üzerine tıklandıktan sonra basılı tutulup ilişkinin kurulacağı tabloda ki sahanın üzerine sürüklenir ve bırakılır. Sonuç olarak aşağıdaki resim de görüldüğü gibi iki tablo arasında ilişki kurulmuş duruma getirilir. Şekil 133 Tablolar arasında ilişkilerin oluşmuş hali Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 103 BİLGİSAYAR KULLANIMI Formların oluşturulması Formlar, kullanıcıların veri girmesi, güncellemesi, silmesini daha kolay hale getirmek için etkin bir çözüm yöntemidir. Bu yöntem sayesinde veri tabanının işletilmesi açısından daha etkin bir yöntem oluşturulmuştur. Dokümanda formlar, sihirbaz kullanılarak kolayca form tasarımının nasıl oluşturulacağı anlatılacaktır. Formların oluşturulması için nesneler kısmından form sekmesi seçilir. Sonrasında, sihirbazı kullanarak form oluştur seçimi yapıldıktan sonra şekil 134’de ki form sihirbazı penceresinden, hangi tabloya ait form oluşturulacağı seçilir ve o tablodaki hangi sahaların form üzerinde veri sahası olarak gözükeceği, penceredeki > veya bütün sahaların aktarılacağı >> düğmesi kullanılarak gerekli sahalar seçimi yapılır. Şekil 134 Formu oluşturulacak pencere seçimi işlemi Formda gözükecek olan sahaların seçiminden sonra, ileri düğmesine tıkladığımızda karşımıza çıkacak yeni pencerede, formun nasıl gözükesi istendiğine dair bir pencere karşımıza çıkar, bu pencerede yapılan seçim sonucu form sayfası otomatik bir biçim alacaktır. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 104 BİLGİSAYAR KULLANIMI İleri düğmesine tıklandığında, karşımıza sahaların değerlerinin girileceği metin kutuları ile saha isimlerinin gözükeceği etiketlerin hangi renk ve stillerde olması istediğimizi soran bir pencere olacaktır. İleri düğmesine tıklandığında, En son olarak form oluşturmadan önce form tasarımını değiştirmek isteyip istemediğimizi soran bir pencere karşımıza çıkar. Eğer form tasarımını değiştirmeyi seçersek, formun en son görünümünü değiştirebilmemizi sağlayacak bir ayrı pencere açacaktır. Son düğmesine tıklandığında, formun son hali ve değişimler yapabileceğimiz araçların olduğu araç çubukları ekrana gelir. Örnekteki uygulamada üç adet komut düğmesi forma eklenmiştir. Bu komut düğmeleri, üstüne tıklanıp form üzerine sürüklendiğinde açılan pencereden komut düğmesinin hangi uygulamada hangi amaçla kullanılacağının seçileceği kutucuklar açılır. Bu seçimlerden herhangi biri yapıldıktan sonra, şekil 103’de ki komut düğmesi üzerinde hangi resim veya metnin gözükeceği seçilir. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 105 BİLGİSAYAR KULLANIMI Şekil 135 komut düğmesinin üzerinde gözükecek olan resim veya metnin seçimi İleri düğmesine tıklandığında, En son olarak komut düğmesinin, daha sonra ki bir yazılım kodunda kullanılabilir olması halinde hangi isimle, yazılım kodu içerisinde kullanılacağını girmemiz istenmekte. Son’a tıklandığında yandaki şekilde ki gibi istediğimiz komut düğmelerini oluşturma, onlara işlem atama sağlayabilecez. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 106 BİLGİSAYAR KULLANIMI Şekil 136 Formun kullanımına bir örnek Sorgu oluşturma Sorgulamadan kasıt tablodaki veriler arasında veya birden fazla tablo içindeki veriler arasında sorgulama işleminin yapılması ve sorgu sonucu verilerin listelenmesi anlatılmaktadır. Sorgulama işlemleri için bir çok veri tabanında standart olarak SQL (Structured Query Language = yapısal sorgulama dili) sorgulama dili kullanılır. Bu dokümanda da SQL dilinin basit manada Access içinde kullanımı anlatılacaktır. Sorgu oluşturmak için sorgu nesnesi içinde “Tasarım Görünümünde Sorgu Oluştur” çift tıklanır. Açılan tabloyu göster penceresi kapatıldığında sol üst köşede SQL ifadesi üzerine tıklanır. Açılan pencere bizim SQL komutlarımızı yazacağımız pencere olacaktır. Yazdığımız SQL komutunu çalıştırıp sonucunu görmek için araç çubuğundaki, ! ünlem simgesinden yararlanırız. Şekil 137 Sorgu nesnesindeki tasarım görümünde sorgu oluştura tıklandığında açılacak pencere Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 107 BİLGİSAYAR KULLANIMI Şekil 138 Tabloyu göster penceresi kapandığında ekranın sol üst köşesinde SQL yazısı belirir. Tıklandığında üstte sağdaki ekran görüntüsü oluşur. Bu SELECT; yazısı beliren pencere bizim SQL sorgumuzu yazıp deneyeceğimiz penceredir. Şekil 139 Sorgunun çalıştırılması. Sorgunun çalıştırılabilmesi için araç çubuğundaki ! işaretine basılır ve eğer sorgu yazımında yanlışlık yoksa sorgu sonuçları listelenir. Şekil 140 Örnek sorgu sonuçları SQL dilinin üç temel komutu vardır. Select seçilecek veritabanı sahalarının isimlerinin yazılacağı komut. Fromseçilecek sahaların hangi veri tabanlarından alınacağının belirtileceği komut Where seçimlerde gerekli kısıtlamaların yapılması gerektiğin kullanılacak komut. Birkaç örnek ile SQL kullanarak sorgulama işlemini anlatalım: Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 108 BİLGİSAYAR KULLANIMI 1) Sorgu: tüm öğrencilerin listelenmesi SQL: Select * Select komutundaki * ifadesi özel karakterdir. İsim FromOgrenci belirtmeksizin tüm anlamında kullanılır. 2) Sorgu: kayıtlı öğrencilerin ad ve soyadlarının listelenmesi SQL: Select ad,soyad Select komutuna listelenecek sahaların ismi, from FromOgrenci komutuna bu sahaların hangi tablodan alacağı yazılır. 3) Sorgu: numarası 10002 olan öğrenciye ait bilgiler. Sorguda öğrenci numarası değeri giriliyor, kısıtlama kısmında bu değere karşılık gelen saha değerini kısıtlama kısmında eşit olup olmadığını sorgulamak. SQL: Select * Tüm bilgiler istendiği için, select FromOgrenci WhereOgrenci.numara=10002 4) Sorgu: Adı Kazım olan öğrencilerin listesi SQL: Select * FromOgrenci WhereOgrenci.ad= “Kazım” Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları komutunda * sembolü kullanıldı. Buradaki kısıt veriler içindeki bir değer ile yapıldı. Kısıt işlemini uygulamak için Where komutu içinde ogrenci tablosundaki numara sahasına eşit olacak kayıt listesi istendi. Tüm bilgiler istendiği için, select komutunda * sembolü kullanıldı. Buradaki kısıt olarak metin ifadesi istendiği için değer “ ” arasında kullanıldı. Metin ifadelerinde küçük büyük harf duyarlılığı yoktur. “Kazım” veya “KAZIM” yazılması sonucunda aynı liste karşımıza çıkacaktır. 109 BİLGİSAYAR KULLANIMI 5) Sorgu: numarası 10001 den büyük olan ve 456 sok. adresinde oturan öğrencinin TC numarası. SQL: İstenen Tc numarası olduğundan Select komutuna veri tablosundaki TC nosuna Select TCKimlikNo karşılık gelen sahanın adı yazıldı. FromOgrenci İki kısıt kullanıldı. Bu kısıtlar WhereOgrenci.Numara> 10001 aralarında And komutu konularak bir AndOgrenci.Adres= “456 sok.” birlerinden ayrıldı. İkinci dikkat edilecek olan ise > işareti ile verilere sınama getirildi. Dikkat edilirse yukarıda ki sorgulamalar, verilen sabit değerler ile sorgulanıyor. Bu durum o sabit değerler ile sınırlı kalacaktır. Sorgulamaları daha genel bir duruma sokabilmek için yapılması gereken sorgulanacak değerlerin kullanıcı tarafından parametre olarak girilmesinin sağlanması olacaktır ki bu işlemi yapabilmek için ‘p’ harfi özel karakter olarak kullanılır. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 110 BİLGİSAYAR KULLANIMI Örnek BANKA tablosu Alan Adı Veri Türü Alan Boyutu Tanım Kod Sayı Bayt Bankanın kodu Ad Metin 20 Bankanın adı SUBE tablosu Alan Adı Veri Türü Alan Boyutu Tanım BankaKodu Sayı Bayt Bankanın kodu SubeKodu Sayı Bayt Şubenin kodu Ad Metin 20 Şubenin adı Soru1: Tüm bankaların listesi, Soru2: Banka kodu verilen bankaların adları, Soru3: Banka adı verilen bankaların adları ve kodları, Soru4: Banka kodu verilen şubelerin bilgilerinin listesi, Soru5: Şube kodu verilen bankaların adları ve şube adları, Soru 6: Şube kodu ve şube adı verilen bankaların kodları, Soru 7:Banka adı verilen bankalara ait Şubelerin adlarının listelenmesi. Soru1 : Tüm bankaların listesinin istenmesinde, hiçbir kısıt konmadan bankaların tüm alan (saha) değerleri ile listelenmesidir. İşlemde tüm alanları listelemek için, select parametresinde bütün sahalara ait isimlerin yazılması yerine sadece * özel bir karakteri koymak yeterli olacaktır. Select * Select Kod, Ad From Banka From Banka Yukarıda ki iki SQL ifadesi de aynı işlemi yapar. Sonuç olarak tek farkı, bir tablo içindeki bütün sahaların isimleri yerine sadece * karakterinin kullanılması yeterli olacaktır. Soru 2: Soruda banka kodu verilen banka adları istenmiştir. Sorgu da ki kriter ise banka kodu değerini dışarıdan kullanıcıdan alınmasıdır. Select Ad From Banka WhereBankakodu=pkod Öğr. Gör. Emre İNCE Where parametresinde, kullanıcıdan veri girilmesini sağlamak için yapılması gereken kelimenin başına parametre olduğunu belirten p ifadesinin girilmesidir. Girilen değer, bankakodu sahası ile eşleştirilip, From parametresinde verilen Banka tablosu içindeki kayıtlarda aranmakta, eğer girilen bankakodu değeri ile eşleşen bulunduğunda o kayıttaki Ad sahsasına ait değer listelenir. Bilgisayar Uygulamaları 111 BİLGİSAYAR KULLANIMI Soru 3: Baka adı verilen bankaların adları ve kod değerlerinin listelenmesi işleminde yapılacak kullanıcıdan banka adını parametre olarak almak olacaktır. Alınacak olan, parametre, from parametresinde belirtilen Banka tablosunda Ad sahasında aranacak, eğer eşleşen kayıt bulunursa, banka’ya ait ad ve kod sahaları listelenecek. Select banka.ad, banka.kod From Banka Wherebanka.ad =pad Select ad, kod Yandaki iki SQL kodu da aynı işlemi yapar. Eğer sorgu içinde sadece tek bir tablo kullanılıyorsa, alt kısımdaki SQL de görüldüğü gibi saha isimlerinin önüne tablonun adının eklenip aralarına nokta konması gerekmez. Banka.ad From Banka Where ad =pad Soru 4: banka kodu verilen şube bilgileri listelenmesi sorgusunda, kriter olarak kullanıcıdan bankakodu istenmiştir. Verilen tablolar dikkatle incelendiğinde sorgu için sadece Sube tablosunun kullanılması yeterli olacaktır. Girilen koda göre listelenecek olan bilgilerde bir sınır olmadığı için burada * karakterinin kullanılmasında bir sakınca yoktur. Select * FromSube Wheresube.bankakodu=pkod Select parametresinde belirtilen * karakteri ile şube kodu girilen şubeye ait Bankakodu, Subekodu, Ad sahalarının listelenmesi istenmektedir. Birden fazla tabloya ait sorgulama istendiğinde yapılacak olan Bağlantı amaçlı olarak farklı tabloların ortak sahalarını (birbiri ile ilişkiye giren sahalarını) Where parametresinde eşitlemek; kaç adet tablo kullanılıyor ise o tabloları from’da belirtmek; Select ve Where’de saha isimleri yazılırken saha hangi tabloya ait ise tablo.sahaadı olarak kullanmak gereklidir. Soru 5: şube kodu değeri sadece SUBE tablosunda bulunmaktadır. O takdirde Sube tablosu sorgu için yazılacak olan SQL’de yazılmalıdır. İkinci olarak, istenen banka adı sadece Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 112 BİLGİSAYAR KULLANIMI Banka tablosu içinde bulunmaktadır. Sorguyu yazarken her iki tabloyu da kullanmak onları From parametresinde belirtmek gerekmektedir. Where kısmında bağlantıyı kuracak olan her iki tablo arasındaki ortak saha olan banka kodu sahası eşitlenmelidir. Ana mantık: şube kodu kullanıcıdan alınıp o kodun olduğu kayda ulaşmak, O şubenin banka kodu değerine ulaşıp istenenlerden biri olan şube adı ve banka kodu değerini almak. İşlemleri yapabilmek için ilk olarak Şube tablosunu kullanmak gerekmektedir. Sonrasında Banka tablosunda o banka kodu değerinin olduğu kayda ulaşıp kayıttaki banka adı değerini bulmak. Sorgu 6: Sorgu diğer sorgu örneklerinden farklı olarak, birden fazla sayıda kullanıcıdan değer istemektedir. Kısıtlama parametreleri Where komutunda yazılmaktadır. Her iki kısıt arasına And (ve) ifadesi girilip her iki kısıtlamanın birden işletilmesi istenmektedir. Tablolar dikkatle incelendiğinde sadece, girilecek değerlere ve istenen değerlere ait bilgilerin hepsi Sube tablosu içinde bulunmaktadır. Select Bankakodu FromSube Wheresube.subekodu=pkod Andsube.ad=pad Where komutunda And ifadesi ile birden fazla kısıt istenmiş. Her iki girilen parametre ile Sube Tablosunda bulunan bir kayıt eşleştiğinde, bu kayıtta bulunan bankakodu sahası değeri listelenir. Sorgu 7: Verilen banka adına göre, o bankaya bağlı bulunan şubelerin adlarının listelenmesi işleminde tablolar incelendiğinde, istenen ve kriter olarak verilecek olan bilgiler tek bir tablo içinde yer almamaktadır. Bu yüzden birden fazla tablo kullanılacaktır ve bu tabloların birbiri ile ilişkili olan sahaları Where komut satırında ilişkilendirilecek. Girilen banka adı banka tablosunda aranıp bulunan kayıt içerisinden bankadu sahası değeri elde edilecek. Bankakodu değeri şube tablosu içerisinde var olan bankakodu değeri ile eşleşen şubelere ait kayıtlara ulaşılıp istenen şubelere ait kayıt değerlerinin listelenmesi sağlanmış olacak. Select Sube.ad FromSube, Banka Wherebanka.ad=pad Andbanka.kod=sube.bankakodu Öğr. Gör. Emre İNCE Yandaki SQL cümleciği incelendiğinde, birden fazla tablo kullanıldığı için sahaların isimlerini yazarken bulundukları tablonun isimleri ile beraber kullanılmışlardır. Son satırda ki kısıtta kullanılan iki tablo arasında bir ilişkinin kurulması sağlanmıştır. Bilgisayar Uygulamaları 113 BİLGİSAYAR KULLANIMI Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 114 BİLGİSAYAR KULLANIMI Hasta Ad Soyad TcNO Teshis Adres Cep_no Doktor_no Odano Oda Odano Televizyon (Var/yok) Kat Dolu (Dolu/Boş) HastaKayit Hasta_Tc Odano Doktor Doktorno Ad Soyad Branş Doktor_no Soru 1: TC kimlik numarası girilen hastanın cep telefonu ve hangi odada olduğunu listele Select Hasta.Cep_no, Hasta_kayit.odano From Hasta, Hasta_kayit Wherehasta_kayit.hasta_tc=ptcno Andhasta_kayit.hasta_tc=hasta.TCNO Sorguda yapılması gereken ilk şey, istenenlerin ne olduğu ve istenenlere göre hangi tabloların kullanılması gerektiği. İstenen Hastanın cep telefonu ve hangi odada kaldığı olduğuna göre cep telefonu bilgisi Hasta tablosunda, Oda numarası iki tabloda da var (HastaKayit ve Oda). İki tablodan hangisinin kullanılacağını seçerken istenen tüm bilgilerin kolayca ulaşabilineceği birbiri ile ilişki içinde olan tablolar seçilmeli. O takdirde hastakayit ve Hasta tablolarının sorgulama için seçilmesi uygun olacaktır. Sorguda koyu olarak vurgulu olarak yazılan satırda, tablolar arasında ilişki kurulması sağlanmış olur. Böylece farklı tablolar arasında verilere erişimin sağlanması için bağlantı kurulmuışolurç Sorgu 2: Verilen oda numarasına göre o odada yatan hastaların Ad ve Soyadları Sorgu 3:Televizyonlu olan odalardan boş olanlar kaçıncı katta. Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 115 BİLGİSAYAR KULLANIMI Kitap KitapNO ad Yazar konu KitapKayit Kitapno Aldığıtar Öğrenci Öğrencino Ad Soyad Bolum Ogrenci_n o Verdigi_tar (Boş Olabilir) Soru 2: Ogrenci numarası verilen öğrencinin aldığı kitapların adları Sorgu 2: Kitaplarını getirmeyen öğrencilerin ad soyadları Sorgu 3:Girilen öğrenci numarasına göre, aldığı kitapların konusu Öğr. Gör. Emre İNCE Bilgisayar Uygulamaları 116