SQL, Yapısal Sorgu Dili'nin kısaltmasıdır; Veritabanlarından verilere erişmek için kullanılan kapsamlı ya da bildirimsel bir veritabanı dilidir.
Karşılaştırma Tablosu
Karşılaştırma için temel | NEREDE | HAVING |
---|---|---|
Temel | Satır işlemlerinde uygulanır. | Sütun işlemlerinde uygulanır. |
Uygulanan | Tek sıra | Özetlenen satır veya gruplar. |
Veri alma | Yalnızca duruma göre belirli verileri belirli satırlardan alır. | İlk başta, tam veri alınır ve sonra duruma göre ayrılır. |
Toplama İşlevleri | WHERE yan tümcesinde görünemez. | HAVING yan tümcesinde görünebilir. |
İle kullanılan | SELECT ve UPDATE, DELETE veya bunlardan biri gibi diğer ifadeler. | SELECT ifadesi olmadan kullanılamaz. |
Gibi davran | Ön filtre | Post-filtre |
GRUP TARAFINDAN | NEREDE sonra geliyor. | HAVING sonra geliyor. |
Nerede cümlenin tanımı
SQL WHERE deyimi, verileri tek bir tablodan alma sırasındaki veya birden çok tabloyla birleştirerek bir durumu tanımlamak için kullanılır. Belirtilen koşul yerine getirildiğinde, yalnızca belirli bir değeri tablodan döndürür. WHERE yan tümcesi, kayıtları nüfuz etmek ve yalnızca gerekli kayıtları almak için kullanılır.
SQL ayrıca mantıksal bağlaçları da uygular ve ya da Boole koşulu olarak da bilinen WHERE deyiminde değildir ; Koşulların, tülleri geri almak için doğru olması gerekir. Mantıksal bağlayıcı ifadelerin işlenenleri, <, <=, >, > =, = ve gibi karşılaştırma işleçlerini içerir. . Bu karşılaştırma operatörleri dizeleri ve aritmetik ifadeleri karşılaştırır. SELECT deyiminde ve ayrıca UPDATE, DELETE deyimlerinde kullanılabilir.
Bir örnek alalım. Aşağıda ' Satış ' tablosu adı altında gösterilen tablo, ' Ürün ' ve ' Satış_amatı ' özelliklerinden oluşur.
SELECT Ürün, toplam (Sales_amount) AS Total_sales Satıştan itibaren ('Telefon', 'Hoparlörler') GROUP BY Ürün;
Cümleye Sahip Olmanın Tanımı
SQL, GROUP BY deyimiyle birlikte kullanılabilecek HAVING deyimini sağlar. Bu HAVING maddesi, belirli şartları yerine getiren grupların değerlerini almaya yardımcı olur. WHERE yan tümcesi seçim sırasında HAVING yan tümcesiyle birlikte de kullanılabilir, WHERE yan tümcesi ayrı satırı filtreler. Daha sonra sıralar gruplandırılır ve toplam hesaplamalar yapılır, sonunda HAVING yan tümcesi grupları filtreler.
GROUP BY anahtar sözcüğü kullanılmadığında, NEREDE ile aynı şekilde hareket eder. Min, max, avg, sum ve count gibi grup fonksiyonları sadece iki maddede görünebilir: SELECT ve HAVING yan tümcesi. Öznitelik grubundaki her bir değere karşılık gelen perdelerde bir koşul sağlar. Durumu sağlayan tek kayıt kümesi sonuç olarak gösterilecektir.
Burada ayrıca WHERE deyimi ile aynı örneği alıyor ve aynı ' Satışlar ' tablosunu düşünüyoruz. HAVING yan tümcesini kullanarak telefon ve konuşmacıların toplam sayısını hesaplamak istediğimizde, aşağıdaki sorguyu yazacağız.
SELECT Ürün, toplam (Sales_amount) AS Total_sales Satış Grubundaki Ürüne Göre ('telefon', 'Hoparlörler');
Sorgu, ürünlerin önce alındığı aşağıdaki çıktıyı üretir, daha sonra toplama işlevi (toplamı) gerçekleştirilir ve son gruplarda WHERE yan tümcesinden farklı olarak süzülür.
Yalnızca Total_sales değerinin 1000'den büyük olduğu ürünleri bulmak istediğimizde. Sorgu şu şekilde yazılabilir:
SELECT Ürün, toplam (Sales_amount) AS Total_sales Satış Grubundan FROM HAVAN toplamı (Sales_amount)> 1000;
Üretilen çıktı:
Bu, HAVING'e rağmen WHERE deyimi kullanılarak gerçekleştirilemez ve WHERE deyimi toplu işlevlerle kullanılamadığından bir hata mesajı oluşturur.
Nerede ve Maddeye Sahip Olma Arasındaki Temel Farklılıklar
- WHERE deyimi satır işlemlerinde kullanılır ve tek bir satırda uygulanır, HAVING deyimi sütun işlemlerinde kullanılır ve özetlenen satırlara veya gruplara uygulanabilir.
- WHERE yan tümcesinde istenen veriler uygulanan duruma göre alınır. Aksine, HAVING deyimi tüm verileri alır ve sonra duruma göre ayırma yapılır.
- Min, sum, max, avg gibi toplama işlevleri, WHERE yan tümcesinde hiçbir zaman görünmeyebilir. Karşıt olarak, bu işlevler HAVING yan tümcesinde görünebilir.
- HAVING yan tümcesi bir SELECT ifadesi olmadan kullanılamaz. Tersine, NEREDE SELECT, UPDATE, DELETE, vb. İle kullanılabilir.
- WHERE deyimi bir ön filtre görevi görür, HAVING deyimi bir süzgeç işlevi görür.
- GROUP BY ile birlikte kullanıldığında NEREDE deyimi, GROUP BY'den önce gelir. Bu, WHERE filtresinin, toplu hesaplamalar gerçekleştirilmeden önceki satırları gösterir. Öte yandan, HAVING GROUP BY'den sonra gelir, yani toplam hesaplamalar yapıldıktan sonra filtreler.
Sonuç
NEREDE ve HAVING yan tümcesi, HAVING yan tümcesinin popüler olduğu ek özellik dışında aynı şekilde çalışır. HAVING yan tümcesi toplama işlevleriyle etkin bir şekilde çalışabilir, WHERE toplama işlevleriyle çalıştırılamaz.