SQL'de Nerede ve Hangi Maddede Olma Arasındaki Fark
![SQL'de Nerede ve Hangi Maddede Olma Arasındaki Fark - Teknoloji SQL'de Nerede ve Hangi Maddede Olma Arasındaki Fark - Teknoloji](https://a.fondoperlaterra.org/technology-differences/difference-between-where-and-having-clause-in-sql.jpg)
İçerik
NEREDE ve HAVING yan tümcesi temel olarak SQL sorgularının ifadesinde kullanılır, bunlar belirli bir yüklem kullanarak sonuç ilişkisindeki birleşimi kısıtlamamızı sağlar. WHERE ve HAVING arasındaki en büyük fark, WHERE yan tümcesinin, seçim için koşulları belirlemesidir. tuples (satırlar) Gerekirse birleştirme koşulları da dahil olmak üzere ilişkilerden. Öte yandan, HAVING yan tümcesi bir koşul belirtir. gruplar bireysel tekillerden ziyade seçilmek.
SQL kısaltması Yapılandırılmış sorgu dili; Veritabanlarından verilere erişmek için kullanılan kapsamlı ya da bildirimsel bir veritabanı dilidir.
- Karşılaştırma Tablosu
- Tanım
- Anahtar Farklılıklar
- Sonuç
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 | Sadece koşulu göre belirli satırlardan belirli verileri 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 önce geliyor. |
Nerede cümlenin tanımı
SQL NEREDE yan tümce Verileri tek bir tablodan alma sırasındaki bir durumu tarif etmek veya çoklu tablolarla birleştirmek yoluyla 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, veya ve değil NEREDE yan tümcesinde, aynı zamanda boole şart; Koşulların, tekilleri almak için doğru olması gerekir. Mantıksal bağlayıcı ifadelerin işlenenleri, aşağıdaki gibi karşılaştırma işleçlerini içerir. <, <=, >, >=, =, ve <>. Bu karşılaştırma operatörleri dizeleri ve aritmetik ifadeleri karşılaştırır. Bu kullanılabilir SEÇ GÜNCELLEME yanı sıra, SİL ifadeleri.
Bir örnek alalım. Aşağıda ‘olarak adlandırılan tabloSatış‘Masa oluşur consistsÜrün' ve 'Satış miktarı' Öznitellikler.
SELECT Ürünü, toplamı (Sales_amount) AS Total_sales Satıştan NEREDE GİRİŞ YAPTIRILMIŞTIR.
Yan tümce olan tanımı
SQL sağlar HAVING yan tümcesi ile birlikte kullanılabilir GRUP TARAFINDAN fıkra. 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 deyimi. Öznitelik grubundaki her bir değere karşılık gelen perdelerde bir koşul sağlar. Durumu sağlayan tek kayıt dizisi sonuç olarak gösterilecektir.
Burada ayrıca WHERE yan tümcesi ile aynı örneği alıyoruz ve aynı consideringSatış‘Masa. Hesaplamak istediğimizde Toplam satış HAVING yan tümcesini kullanarak telefon ve hoparlörler, aşağıdaki sorguyu yazacağız.
SELECT Ürün, toplam (Sales_amount) AS Total_sales Satış Grubunda bulunan ü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.
Sadece bu ürünleri bulmak istediğimizde Toplam satış 1000'den büyüktür. Sorgu şu şekilde yazılabilir:
SELECT Ürün, toplam (Sales_amount) AS Total_sales Satış Grubundan FROM HAVAN toplamına göre (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 oluşturur.
- WHERE yan tümcesi satır işlemlerinde kullanılır ve tek bir satırda uygulanır, HAVING yan tümcesi 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 toplu işlevler, WHERE yan tümcesinde birlikte görüntülenemez. 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.