Farklı sorgu türleri hakkında (ADP)

 Not   Bu başlık altındaki bilgiler yalnızca Microsoft Access projelerine (.adp) uygulanabilir.

Sorgu, veritabanından veri almak, oluşturmak, değiştirmek veya silmek için yapılan belirli bir istektir. İki temel sorgu türü vardır:

  • Seçme sorgusu SQL SELECT deyimi kullanarak, görüntülenecek veri alan bir sorgudur.
  • Eylem sorgusu, veri eklemek, değiştirmek veya silmek için SQL INSERT, UPDATE ve DELETE deyimlerini kullanan bir saklı yordamdır.

GösterGörünümler

GösterGörünüm Kullanma

Depolama Birimi       Görünümler veritabanı tasarımının bir parçası olarak depolanır. Veritabanı tasarlanırken, tasarıma aşağıdaki nedenlerle görünüm ekleyebilirsiniz:

  • Bazı veri alt kümeleri çok sayıda kullanıcıyı ilgilendirir. Her görünüm veritabanında depolandığından, görünümler herhangi bir veritabanı kullanıcısının kullanabileceği özel veri alt kümeleri oluşturur.
  • Görünümler temel tabloları gizleyebilir. Kullanıcıların verileri yalnızca görünümler yoluyla işlemesi koşulunu getirerek, tüm kullanıcıların veritabanı tablolarına erişimini kaldırabilirsiniz. Bu tür bir yaklaşım, kullanıcıların ve uygulama programlarının bazı veritabanı değişiklikleri yapmasını önler. Örneğin, “Bu Ayın Satışları” adında bir görünüm oluşturabilirsiniz. Her ayın ilk gününde görünüm tanımını uygun şekilde değiştirebilirsiniz. Bu tür bir görünüm kullanmazsanız, kullanıcılar uygun ayın Satış satırlarını seçmek için, sorgularını her ay yeniden yazmak zorunda kalabilir.

Sonuçları sıralama       Bir görünümü yalnızca TOP yan tümcesini içermesi durumunda sıralayabilirsiniz.

Sorgu planı oluşturma       Sorgu planları, veritabanı sunucusunun sonuç kümelerini hızla oluşturmak için kullandığı bir iç stratejidir. Veritabanı sunucusu, görünüm kaydedildiği anda, görünüm için bir sorgu planı oluşturabilir.

GösterDizinli Görünümleri ve Şema Cilt Paylarını kullanma

GösterDizin oluşturulmuş görünümler ve şema cilt payları

Dizin oluşturulmuş görünümler, sonuçları veritabanında varlığını sürdüren ve hızlı erişim için dizine alınmış görünümlerdir. Dizin oluşturulmuş görünümler, Microsoft Access projeniz (Microsoft Access projesi: Bir Microsoft SQL Server veritabanına bağlanan ve istemci/sunucu uygulamaları oluşturmak için kullanılan bir Access dosyası. Bir proje dosyası veriler veya tablolar ve görünümler gibi veri tanımına dayanan nesneler içermez.) Microsoft SQL Server 2000 Enterprise Edition veya SQL Server 2000 Developer Edition'a bağlıysa desteklenir, ancak Microsoft SQL Server 2000 Desktop Edition'da desteklenmez. Dizin oluşturulmuş görünümlerin en iyi kullanımı, verilerin salt okunur (karar destek sistemi vb.) olduğu, dizinlenmiş görünümlerin sorguları, toplamları veya birleştirmeleri kapsamadığı ve dizinlenmiş görünümün temel tablo şema tanımlarının değişme olasılığının bulunmadığı durumlarda gerçekleşir. Dizin oluşturulmuş görünümler hakkında daha fazla bilgi için, SQL Server belgelerine bakın.

Diğer görünümler gibi dizinlenmiş görünümler de verileri için temel tablolara bağlıdır. Bu bağımlılık, dizinlenmiş görünüme katkıda bulunan bir temel tabloyu değiştirmeniz durumunda dizinlenmiş görünümün geçersiz olacağı anlamına gelebilir. Örneğin, görünüme katkıda bulunan bir sütunu yeniden adlandırırsanız, görünüm geçersiz olur. Bu tür sorunları önlemek için, SQL Server “şema cilt payı” ile görünüm oluşturmayı destekler. Şema cilt payı, görünümü geçersiz kılacak tüm tablo veya sütun değişikliklerini önler. Sorgu Tasarımcısı'yla oluşturduğunuz tüm dizinlenmiş görünümler otomatik olarak şema cilt payı alır, çünkü SQL Server dizinlenmiş görünümlerin şema cilt payı olmasını gerektirir. Şema cilt payı, görünümü değiştiremeyeceğiniz anlamına gelmez; görünümün sonuç kümesini değiştirecek alttaki tablo ve görünümleri değiştiremeyeceğiniz anlamına gelir.

GösterTemel tablo veya sütunu değiştirdiğinizde olması beklenenler

Tablo Tasarımcısı'nı veya Veritabanı Tasarımcısı'nı kullanarak, şema cilt payıyla tanımlanan bir görünüme katkıda bulunan temel bir tabloyu veya sütunu değiştirmeyi deneyebilirsiniz. Değişiklik girişiminiz görünümü geçersiz kılarsa, Tasarımcı sizi uyararak devam etmek isteyip istemediğinizi sorar. Devam etmeyi seçerseniz, aşağıdakiler oluşur:

  • Temel tabloda yaptığınız değişiklikler gerçekleşir.
  • Temel tablo görünümüne bağlı olan tüm görünümler, değiştirilerek “şema cilt payı” kaldırılır. Bu nedenle, temel tabloda yaptığınız sonraki değişiklikler uyarı verilmeden devam eder.
  • Bağımlı görünümler dizine alınmışsa, dizinler silinir.

Tablo Tasarımcısı veya Veritabanı Tasarımcısı'nın temel tabloda değişiklik yapılmadan önce uyarıda bulunması, yalnızca temel tablonun şema cilt payı olan bir görünüme katkıda bulunması ve değişikliğinizin aşağıdakilerden birine veya birkaçına yol açması durumunda gerçekleşir:

  • Temel tablo silinir
  • Temel tablo yeniden adlandırılır
  • Temel tablo yeniden oluşturulur
  • Temel tablodan bir sütun ve bu sütunu içeren görünüm kaldırılır
  • Temel tablodaki bir sütun ve bu sütunu içeren görünüm yeniden adlandırılır

GösterSaklı Yordamlar

Saklı yordamlar, veritabanınızın yönetilmesini ve bu veritabanı ile kullanıcılarına ilişkin bilgilerin görüntülenmesini kolaylaştırır. Saklı yordamlar, SQL deyimleri ile isteğe bağlı akış denetimi deyimlerinin aynı ad altında depolanan ve tek bir birim olarak işlenen önceden derlenmiş bir toplamıdır. Saklı yordamlar bir veritabanında depolanır; bir uygulamadan yapılacak çağrıyla yürütülebilir ve kullanıcı tarafından bildirilen değişkenlere, koşullu yürütmeye ve diğer güçlü programlama özelliklerine izin verir.

Saklı yordamlar veritabanına karşı program akışı, mantık ve sorgular içerebilir. Parametre kabul edebilir, çıkarabilir, tek veya çoklu sonuç kümeleri ve değerler verebilirler.

Saklı yordamları, SQL deyimleriyle aynı amaçla kullanabilir ve aşağıdaki şekilde yararlanabilirsiniz:

  • Tek bir saklı yordamda bir dizi SQL deyimini yürütebilirsiniz.
  • Saklı yordamınızın dışındaki diğer saklı yordamlara başvurabilir ve böylece bir dizi karmaşık komutu basitleştirebilirsiniz.
  • Saklı yordam oluşturulduğunda sunucuda derlendiğinden, bu yordam tek tek SQL deyimlerinden daha hızlı yürütülür.

Tek deyimli bir saklı yordam yalnızca bir SQL SELECT deyimi içerir. Saklı yordamı, Sorgu Tasarımcısı'nda grafik olarak oluşturup düzenleyebilir ve genişletilmiş özellikler (sütun özellikleri dışında) tanımlayabilirsiniz.

Çok deyimli bir saklı yordam, birden çok SQL deyimi içerir. Bu deyimleri SQL Metin Düzenleyicisi'nde oluşturabilir ve düzenleyebilirsiniz; ayrıca çoklu deyimli saklı yordamdaki SQL SELECT deyimini, Sorgu Oluşturucusu'nu kullanarak grafik olarak da düzenleyebilirsiniz. Bununla birlikte, genişletilmiş özellikler tanımlayamazsınız.

GösterKullanıcı Tanımlı İşlevler

Microsoft Access projeniz bir Microsoft SQL Server 2000 veritabanına bağlıyken, kullanıcı tanımlı fonksiyon oluşturup kullanabilirsiniz. Aşağıdaki örnekte, adlandırılmış parametre kabul eden, sonuç olarak tablo veren ve SELECT deyiminin FROM yan tümcesinde kullanılan ListeMüşt kullanıcı tanımlı fonksiyon gösterilmiştir.

SELECT * FROM ListeMüşt(@[Bir Ad Girin])

GösterKullanıcı tanımlı fonksiyonlara genel bakış

Kullanıcı tanımlı fonksiyon, aşağıdakileri yapmanıza olanak sağlayan ve bir görünüm veya saklı yordama benzer bir sorgudur:

  • Veritabanı penceresindeki görüntüleme.
  • Sorgu Tasarımcısı veya SQL Metin Düzenleyicisi'nde oluşturma.
  • Veri almak ve veri sayfasındaki sonuçlara gözatmak için kullanma
  • Form, rapor veya birleşik giriş kutusunu kayıt kaynağı olarak kullanma. 

 Not   Kullanıcı tanımlı fonksiyonu veri erişim sayfası kayıt kaynağı olarak kullanamazsınız.

  • Access nesne modelini kullanarak programlı olarak işleme.

Kullanıcı tanımlı fonksiyonlar, görünüm ve saklı yordamların en iyi özelliklerini, değerleri iç içe yerleştirebileceğiniz, parametreleri geçirebileceğiniz, sıralayabileceğiniz ve verebileceğiniz tek bir sorguda birleştirmenize olanak sağlar. Çoğu durumda, kullanıcı tanımlı fonksiyonlar, görünümler ve saklı yordamlara iyi bir seçenek oluşturur; bunun nedeni, tek bir veri tablosu veya skalar değer verebilmeniz, iş mantığını ve veri veya skalar değerin oluşturulma ayrıntılarını gizlemeniz ve SQL deyiminizdeki sözdizimi karmaşıklığını basitleştirebilmenizdir.

Kullanıcı tanımlı fonksiyonlar hakkında daha fazla bilgi ve örnekler için, SQL Server belgelerine bakın.

GösterKullanıcı tanımlı fonksiyonların üç türü

Verdiği değer türüne bağlı olarak, her kullanıcı tanımlı fonksiyon aşağıdaki üç kategoriden birine girer:

bekleme kullanıcı tanımlı fonksiyonu       Tek bir SELECT deyimi içerir ve güncelleştirilebilir bir veri tablosu verir. Bu işlevi, bir sorgunun FROM yan tümcesinde kullanabilirsiniz. Sorgu Tasarımcısı'nı kullanarak, bekleme kullanıcı tanımlı fonksiyonunu grafik olarak oluşturup düzenleyebilirsiniz. Ayrıca, genişletilmiş özellikler tanımlayabilirsiniz.

tablo kullanıcı tanımlı fonksiyon       Bir veya birden çok SELECT deyimi içerir ve güncelleştirilemez bir veri tablosu verir. Bu işlevi bir sorgunun FROM yan tümcesinde kullanabilirsiniz. Bir tablo kullanıcı tanımlı fonksiyonunu, SQL Metin Düzenleyicisi'ni kullanarak oluşturabilir ve düzenleyebilirsiniz; ayrıca, Sorgu Oluşturucusu'nu kullanarak tablo kullanıcı tanımlı fonksiyonunda bir SQL SELECT deyimini de grafik olarak düzenleyebilirsiniz. Bununla birlikte, genişletilmiş özellik tanımlayamazsınız.

skalar kullanıcı tanımlı fonksiyon       Bir veya birden çok SELECT deyimi içerir ve int, decimal, varchar, sql_variant veya table veri türleri gibi skalar bir değer verir. Skalar fonksiyon sorguda, sütun adı kullanılabilecek herhangi bir yerde kullanılabilir. Skalar kullanıcı tanımlı fonksiyonu SQL Metin Düzenleyicisi'ni kullanarak oluşturabilir ve düzenleyebilirsiniz; ayrıca skalar kullanıcı tanımlı fonksiyonda yer alan bir SQL SELECT deyimini Sorgu Oluşturucusu'nu kullanarak grafik olarak da düzenleyebilirsiniz. Bununla birlikte, genişletilmiş özellik tanımlayamazsınız.

GösterParametre Sorguları

GösterParametre sorgusu nedir?

Aynı sorguyu farklı zamanlarda ve farklı değerlerle yinelenen şekilde çalıştırmak isterseniz, parametre sorgusu kullanabilirsiniz. Parametre, sorgu çalıştırıldığında yazdığınız değerin yer tutucusu olma görevini yerine getirir. Örneğin, bir Müşteriler tablosunda aynı ülke/bölgeye ait olan tüm müşterileri bulmak ister ve her aramada farklı bir ülke/bölgeyi gösterirseniz, Sorgu Tasarımcısı'nda Tasarım kılavuzunun Ölçüt hücresine @Ülkeyi_Gir yazıp, aşağıdaki SQL SELECT deyimini oluşturabilirsiniz:

SELECT * FROM Müşteriler 
WHERE Ülke = @Ülkeyi_Gir

Ülkeyi_Gir parametresinin önündeki (@) işareti karakteri, Access'e Parametre Gir iletişim kutusunu görüntülemesini belirtir; bu şekilde, "Meksika" veya "Danimarka" gibi bir ülke/bölge adı yazabilir ve bunu WHERE yan tümcesinde değer olarak kullanabilirsiniz.

GösterParametre kullanma

Parametreleri metin veya sayısal hazır bilgi değerleri için yer tutucu olarak kullanabilirsiniz. Parametreler genellikle, bir SQL deyiminin WHERE veya HAVING yan tümcelerinde, tek tek satırları veya grupları arama koşullarında yer tutucu olarak kullanılır.

Ayrıca, tarih aralıklarını belirtmek için parametre birleşimleri de kullanabilirsiniz. Örneğin, bir sorgunun WHERE yan tümcesinde iki parametre - @Başlangıç_Tarihini_Girin ve @Bitiş_Tarihini_Girin - oluşturabilir ve aşağıdaki örnekte görüldüğü şekilde, sorgu çalıştırıldığında kira tarihleri aralığını belirtebilirsiniz.

SELECT * FROM ORDERS
WHERE GöndermeTarihi
BETWEEN @Başlangıç_Tarihini_Girin AND @Bitiş_Tarihini_Girin

Parametreleri, ifadelerde yer tutucu olarak da kullanabilirsiniz. Örneğin, sorguyu her çalıştırmanızda farklı bir indirim değeri vererek, indirim fiyatlarını hesaplamak isteyebilirsiniz. Bunun için, Tasarım kılavuzunun Sütun hücresine Birim Fiyat * @İndirimi_Girin ifadesini girebilir ve aşağıdaki örnekte görülen SQL SELECT deyimini oluşturabilirsiniz:

SELECT ProductName, UnitPrice,
(UnitPrice * @Enter_Discount) AS DiscountPrice
FROM Products
                        

GösterAdlandırılmış ve adlandırılmamış parametreleri karşılaştırma

Adlandırılmış ve adlandırılmamış olmak üzere, iki tür parametre belirtebilirsiniz.

Adlandırılmış parametreler

Adlandırılmış parametrelerin okunması ve kullanımı daha kolaydır; ayrıca bir sorguda birden çok parametre kullanıyor ve her parametreye girilecek deyimi açıklığa kavuşturmak istiyorsanız, bu parametreler kullanışlıdır. Örneğin, yazarlar tablosunda yazarların ilk adlarını ve soyadlarını aramak için, aşağıdaki SQL SELECT deyimini oluşturun:

SELECT au_id
FROM authors
WHERE au_fname = @Enter_First_Name AND au_lname = @Enter_Last_Name
                        

Parametre sorgusunu çalıştırdığınızda, Access Parametre Gir iletişim kutusundaki parametre adını kullanarak, her parametre için bir kez bilgi ister ve kullanıcının gireceği adı açıklığa kavuşturmasını sağlar.

Adlandırılmamış parametreler

Adlandırılmamış parametre olarak soru işareti (?) karakteri de girebilirsiniz.

Örneğin, bir form veya raporun kayıt kaynağındaki saklı yordamda, kullanıcı tanımlı bekleme fonksiyonunda veya SQL deyiminde yer alan bir bölgedeki tüm yazarları almak isterseniz, Sorgu Tasarımcısı'nda Tasarım kılavuzunun Ölçüt hücresine soru işareti (?) karakteri yazarak aşağıdaki SQL SELECT deyimini oluşturabilirsiniz:

SELECT au_lname, au_fname
FROM state
WHERE state = @Param1
                        

Bu durumda, Access adlandırılmamış parametreye otomatik olarak, oluşturulmuş @Param1 adını verir.

 Not   SQL Deyiminin formun veya raporun kayıt kaynağında yer alması durumunda, Access, oluşturulmuş ad sağlamaz.

GösterAdlandırılmış parametreleri ne zaman kullanabilir ve kullanamazsınız?

Adlandırılmış parametreleri aşağıdaki koşullarda kullanabilirsiniz:

  • Microsoft Access projeniz Microsoft SQL Server veritabanı sürüm 2000'e bağlıysa.
  • Bir saklı yordam veya bekleme kullanıcı tanımlı fonksiyonunun Sorgu Tasarımcısı'nda.
  • Bir saklı yordam, skalar kullanıcı tanımlı fonksiyon veya tablo kullanıcı tanımlı fonksiyonu için SQL Metin Düzenleyicisi'nde.

Adlandırılmış parametreleri, Sorgu Oluşturucusu'nda oluşturduğunuz bir kayıt kaynağının SQL deyiminde kullanamazsınız.

Adlandırılmış veya adlandırılmamış parametreleri bir görünümde (görünüm (nesne): Access projesinde, SQL SELECT deyimine dayanan bir sanal tablo olan sorgu türü. Örneğin belirli verilere erişimi kısıtlamak için, bir görünüm yalnızca iki tablonun birleşiminde kullanılabilen 10 sütundan 3'ünü içerebilir.) kullanamazsınız.

GösterEylem Sorguları

 Sorgu Tasarımcısı'nın Diyagram ve Kılavuz bölmelerinde (grafik bölmeler) aşağıdaki türde eylem sorguları oluşturabilirsiniz:

  • Ekleme sorgusu       Yeni bir satır oluşturur ve hazır bilgi değerlerini belirtilen sütunlara ekler. Bu tür sorgu, bir SQL INSERT INTO…VALUES deyimi oluşturur.
  • Ekleme sorgusu       Tabloda varolan satırları bir başka tabloya veya aynı tabloya yeni satırlar olarak kopyalamak yoluyla, yeni satırlar oluşturur. Bu tür sorgu, bir SQL INSERT…SELECT deyimi oluşturur.
  • Güncelleştirme sorgusu       Tabloda varolan bir veya daha çok satırdaki tek tek sütunların değerlerini değiştirir. Bu tür sorgu, bir SQL UPDATE deyimi oluşturur.
  • Silme sorgusu       Tablodan bir veya birkaç satırı siler. Bu tür sorgu, bir SQL DELETE deyimi oluşturur.

 Not    Silme sorgusu, tablodan tüm satırları kaldırır. Değerleri tek tek veri sütunlarından silmek isterseniz, Güncelleştirme sorgusu kullanın.

  • Tablo Yapma sorgusu       Yeni bir tablo oluşturur ve sorgunun sonuçlarını kopyalayarak bu tabloda satırlar oluşturur. Bu tür sorgu, bir SQL INSERT…SELECT INTO deyimi oluşturur.

GösterSQL SELECT Deyimleri

SQL deyimini, bir form veya raporun kayıt kaynağı olarak veya bir formdaki liste kutusunun veya birleşik giriş kutusunun satır kaynağı olarak kullanabilirsiniz. Sorgunun veritabanı penceresinde görüntülenmesini önlemek için bunu yapabilirsiniz. SQL SELECT deyimi oluşturmak için, alanın sağındaki Oluştur Düğme görüntüsü düğmesini kullanabilir ve SQL SELECT deyimini Sorgu Tasarımcısı'nda grafik olarak tasarlayabilir veya herhangi bir metin düzenleyicisinde kendi SQL SELECT deyiminizi düzenledikten sonra, kopyalayıp KayıtKaynağı özellik alanına yapıştırabilirsiniz.

 
 
Uygulandığı uygulamalar:
Access 2003