SQL sorguları ile seçilen kayıtları belirtir.
Söz dizimi
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [YÜZDE]]]
FROM tablosuBu koşulları içeren bir SELECT deyimi aşağıdaki bölümlere sahiptir:
Bölüm |
Açıklama |
ALL |
Koşullardan birini eklemezseniz varsayılır. Microsoft Access veritabanı altyapısı, SQL deyimindeki koşulları karşılayan tüm kayıtları seçer. Aşağıdaki iki örnek eşdeğerdir ve Çalışanlar tablosundaki tüm kayıtları döndürür:
|
DISTINCT |
Seçili alanlarda yinelenen veriler içeren kayıtları atlar. Sorgunun sonuçlarına dahil olmak için SELECT deyiminde listelenen her alanın değerleri benzersiz olmalıdır. Örneğin, Çalışanlar tablosunda listelenen birkaç çalışan aynı soyadına sahip olabilir. LastName alanında iki kayıt Smith içeriyorsa, aşağıdaki SQL deyimi Smith içeren yalnızca bir kayıt döndürür:
DISTINCT değerini atlarsanız, bu sorgu her iki Smith kaydını da döndürür. SELECT yan tümcesi birden fazla alan içeriyorsa, belirli bir kaydın sonuçlara dahil edilmesi için tüm alanlardaki değerlerin birleşimi benzersiz olmalıdır. DISTINCT kullanan bir sorgunun çıktısı güncelleştirilemez ve diğer kullanıcılar tarafından yapılan sonraki değişiklikleri yansıtmaz. |
DISTINCTROW |
Yalnızca yinelenen alanları değil, yinelenen kayıtların tamamını temel alan verileri atlar. Örneğin, CustomerID alanında Müşteriler ve Siparişler tablolarını birleştiren bir sorgu oluşturabilirsiniz. Müşteriler tablosunda yinelenen CustomerID alanı yoktur, ancak Siparişler tablosunda her müşterinin birden çok siparişi olabileceğinden vardır. Aşağıdaki SQL deyiminde distinctrow kullanarak en az bir siparişi olan ancak bu siparişlerle ilgili hiçbir ayrıntı içermeyen şirketlerin listesini nasıl oluşturabileceğiniz gösterilmektedir:
DISTINCTROW'u atlarsanız, bu sorgu her şirket için birden fazla siparişi olan birden çok satır üretir. DISTINCTROW yalnızca sorguda kullanılan tabloların bazılarından alan seçtiğinizde ancak tümünü seçmediğinizde etkili olur. Sorgunuz yalnızca bir tablo içeriyorsa veya tüm tablolardan alan çıktısı alıyorsanız DISTINCTROW yoksayılır. |
TOP n [YÜZDE] |
ORDER BY yan tümcesi tarafından belirtilen aralığın en üstüne veya altına düşen belirli sayıda kayıt döndürür. 1994 sınıfından en iyi 25 öğrencinin adlarını istediğinizi varsayalım:
ORDER BY yan tümcesini eklemezseniz sorgu, Öğrenciler tablosundan WHERE yan tümcesini karşılayan rastgele bir 25 kayıt kümesi döndürür. TOP koşulu eşit değerler arasında seçim yapmaz. Yukarıdaki örnekte, yirmi beşinci ve yirmi altıncı en yüksek not ortalamaları aynıysa, sorgu 26 kayıt döndürür. ORDER BY yan tümcesi tarafından belirtilen aralığın en üstüne veya altına düşen kayıtların belirli bir yüzdesini döndürmek için PERCENT ayrılmış sözcüğünü de kullanabilirsiniz. İlk 25 öğrenci yerine sınıfın en alt yüzde 10'unu istediğinizi varsayalım:
ASC koşulu, alt değerlerin bir dönüşünü belirtir. TOP'un ardından gelen değer işaretsiz bir Tamsayı olmalıdır. TOP, sorgunun güncelleştirilebilir olup olmadığını etkilemez. |
tablo |
Kayıtların getirildiği tablonun adı. |