SQL'de Nerede ve Hangi Maddede Olma Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 3 Temmuz 2024
Anonim
SQL'de Nerede ve Hangi Maddede Olma Arasındaki Fark - Teknoloji
SQL'de Nerede ve Hangi Maddede Olma Arasındaki Fark - Teknoloji

İç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.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelNEREDEHAVING
TemelSatır işlemlerinde uygulanır.Sütun işlemlerinde uygulanır.
UygulananTek sıraÖzetlenen satır veya gruplar.
Veri almaSadece 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 İşlevleriWHERE yan tümcesinde görünemez.HAVING yan tümcesinde görünebilir.
İle kullanılanSELECT ve UPDATE, DELETE veya bunlardan biri gibi diğer ifadeler.SELECT ifadesi olmadan kullanılamaz.
Gibi davranÖn filtrePost-filtre
GRUP TARAFINDANNEREDE 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.

Aşağıdaki sorgu hesaplamak için yazılmalıdır. Toplam satış Telefonun ve hoparlörlerin

SELECT Ürünü, toplamı (Sales_amount) AS Total_sales Satıştan NEREDE GİRİŞ YAPTIRILMIŞTIR.

Çıktıyı takiben, satırların ilk önce filtrelendiği, telefon ve hoparlör sıralarının alındığı ve ardından toplama işlevinin gerçekleştirildiği sonuç çıktıdır.

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.

  1. 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.
  2. 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.
  3. 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.
  4. HAVING yan tümcesi bir SELECT ifadesi olmadan kullanılamaz. Tersine, NEREDE SELECT, UPDATE, DELETE, vb. İle kullanılabilir.
  5. WHERE deyimi bir ön filtre görevi görür, HAVING deyimi bir süzgeç işlevi görür.
  6. 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.