WHERE maddesinin tanıtılması ve durumun karşılaştırılması
Structured Query Language (SQL) , veritabanı kullanıcılarına veritabanlarından bilgi almak için özelleştirilmiş sorgular oluşturma yeteneği sağlar. Daha önceki bir makalede, SQL SELECT sorgularını kullanarak bir veritabanından bilgi çıkarmayı araştırdık. Bu tartışmayı genişletelim ve belirli koşullarla eşleşen verileri almak için gelişmiş sorguları nasıl yapabileceğinizi keşfedin.
Yaygın olarak kullanılan ve veritabanı ürünleri ile bir öğretici olarak gönderilen Northwind veritabanına dayalı bir örnek düşünelim.
Veritabanının Ürün tablosundan bir alıntı:
Ürün kimliği | Ürün adı | Tedarikçi kimliği | QuantityPerUnit | Birim fiyat | StokBirimleri |
---|---|---|---|---|---|
1 | Chai | 1 | 10 kutu x 20 torba | 18.00 | 39 |
2 | Chang | 1 | 24 - 12 oz şişe | 19,00 | 17 |
3 | Anason Şurubu | 1 | 12 - 550 ml'lik şişeler | 10.00 | 13 |
4 | Şef Anton'un Cajun Baharatı | 2 | 48 - 6 oz kavanoz | 22.00 | 53 |
5 | Şef Anton'un Gumbo Mix | 2 | 36 kutu | 21.35 | 0 |
6 | Büyükannenin Boysenberry Spread | 3 | 12 - 8 oz kavanoz | 25.00 | 120 |
7 | Bob Amca'nın Organik Kuru Armutları | 3 | 12 - 1 lb pkgs. | 30.00 | 15 |
Basit Sınır Koşulları
Sorgumuza yerleştireceğimiz ilk kısıtlamalar, basit sınır koşullarını içerir. Bunları, SELECT sorgusunun WHERE yan tümcesinde, <,>,> = ve <= gibi standart işleçlerle oluşturulmuş basit durum ifadelerini kullanarak belirtebiliriz.
İlk olarak, 20.00'den fazla UnitPrice olan tüm ürünlerin listesini çıkarmamızı sağlayan basit bir sorguyu deneyelim:
Bu, aşağıda gösterildiği gibi dört ürünün bir listesini oluşturur:
ProductName UnitPrice ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------WHERE yan tümcesini dize değerleri ile de kullanabiliriz. Bu, temel olarak karakterleri A'ya eşittir ve A değeri, değeri (26) temsil eder. A, U, V, W, X, Y veya Z ile başlayan tüm ürünleri aşağıdaki sorguyla gösterebiliriz:
ProductName ürünlerini seçtiniz. WHERE ProductName> = 'T'Hangi sonucu üretir:
ProductName ------- Bob Amca'nın Organik Kuru ArmutlarıSınırları Kullanarak Aralıkları İfade Etme
WHERE yan tümcesi, birden çok koşul kullanarak bir değer üzerinde bir aralık koşulu gerçekleştirmemize de olanak tanır. Örneğin, yukarıdaki sorgumuzu almak ve sonuçları 15: 00-20: 00 arasında olan ürünlere sınırlamak istiyorsak aşağıdaki sorguyu kullanabiliriz:
SELECT ProductName, UnitPrice ÜRÜNLERİMİZ WHERE BirimFiyat> 15.00 VE BirimFiyat <20.00Bu, aşağıda gösterilen sonucu üretir:
ÜrünAdı BirimFiyatı ------- -------- Chai 18.00 Chang 19.00ARASINDAKİ İFADE YÖNTEMLERİ
SQL ayrıca, dahil etmemiz gereken koşulların sayısını azaltan ve sorguyu daha okunabilir kılan BETWEEN sözdizimi sağlar. Örneğin, yukarıdaki iki WHERE koşulunu kullanmak yerine, aynı sorguyu şöyle ifade edebiliriz:
SELECT ProductName, UnitPrice ÜRÜNLERİMİZ 15,00 VE 20.00 ARALIĞIDiğer koşullarımızdaki gibi, BETWEEN dize değerleri ile de çalışır. V, W veya X ile başlayan tüm ülkelerin bir listesini üretmek istiyorsak, sorguyu kullanabiliriz:
"A" ve "D" ARASINDA YER ALAN ÜRÜNLERDEN ÜRÜN ÜNİTESİNİ SEÇİNHangi sonucu üretir:
ProductName ------- Anasonlu Şurup Chai Chang Şefi Anton'un Gumbo Mix Şefi Anton'un Cajun BaharatıWHERE yan tümcesi, sonuçları belirtilen aralıklara düşen değerlerle sınırlamanıza olanak veren SQL dilinin güçlü bir parçasıdır. İş mantığının ifade edilmesine yardımcı olmak için yaygın olarak kullanılır ve her veritabanı profesyonelinin araç setinin bir parçası olmalıdır.
SQL bilgisine sahip olmayanların erişilebilir olmasını sağlamak için, saklı bir yordamın içine ortak cümleleri dahil etmek genellikle yararlıdır.