/ / SQL farklı: açıklama, örnekler, özellikler

SQL ayrı: açıklama, örnekler, özellikler

Genellikle örnekleme için SQL kullanırkenTablolardaki bilgiler, kullanıcı tamamen aynı çift satırların varlığından oluşan gereksiz verileri alır. Bu durumu hariç tutmak için, Select yan tümcesindeki SQL bağımsız değişkenini kullanın. Bu yazıda, argümanı terk etmenin daha iyi olduğu durumların yanı sıra, bu argümanı kullanmanın örneklerini ele alacağız.

Belirli örnekleri incelemeye başlamadan önce, veritabanında birkaç gerekli tablo oluşturacağız.

sql farklı

Tablo hazırlama

Veritabanımızda sakladığımızı hayal edinduvar kağıdı hakkında bilgi, iki tablo halinde sunulmuştur. Bu alan kimliği (benzersiz tanımlayıcı), türü (duvar kağıdı - kağıt, vinil, vb), renk, yapı ve fiyat ile Oboi tablosu (duvar kağıdı) 'dir. Ve Ostatki masası (arta kalanlar) alanları ile id_oboi (Oboi tablosundaki benzersiz tanımlayıcıya referans) ve sayımı (depodaki rulo sayısı).

Tabloları verilerle doldurun. Duvar kağıdı ile tabloda 9 giriş ekleyin:

oboi

kimlik

tip

renk

yapı

fiyat

1

kâğıt

çok renkli

kabartmalı

56,9

2

Çift katmanlı kağıt

bej

pürüzsüz

114,8

3

vinil

turuncu

kabartmalı

504

4

Dokuma olmayan polar eldivenler

bej

kabartmalı

1020,9

5

Çift katmanlı kağıt

bej

pürüzsüz

150,6

6

kâğıt

çok renkli

pürüzsüz

95,4

7

vinil

kahverengi

pürüzsüz

372

8

Dokuma olmayan polar eldivenler

beyaz

kabartmalı

980,1

9

bez

pembe

pürüzsüz

1166,5

Kalanlarla tabloda da dokuz kayıt var:

Ostatki

id_oboi

saymak

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

SQL'de nasıl farklı kullanılacağını açıklayarak başlayalım.

Select yan tümcesinde ayrı yer

Farklı argüman hemen sonra yerleştirilmelidirSorgularda anahtar kelimeyi seçin. Select yan tümcesinde belirtilen tüm sütunlara hemen uygulanır, çünkü bu, tamamen aynı satırları sorgu sonucundan hariç tutacaktır. Bu nedenle, SQL sorgusunu yazarken "farklı seç" belirtmek yeterlidir. Bunun tek istisnası, biraz sonra ele alacağımız agrega fonksiyonlarının içinde belirgin bir şekilde kullanılmasıdır.

sql farklı seç

Çoğu DBMS'nin isteğinizi şu şekilde tanıyamadığı unutulmamalıdır:

Farklı Ostatki.Count, farklı Oboi SEÇİN. *

Oboi'den

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

Burada, argüman birkaç kez belirtilir veya bir kez belirtilir, ancak ikinci, üçüncü veya diğer seçilebilir kolondan önce. Sözdizimdeki yanlışlıklara referansla bir hata alırsınız.

Standart sorgularda farklı kullanma

Açıkçası, iyi yapılandırılmış bir yapı ileTablolar ve bunların doldurulması, tek bir tablo içinde, tamamen aynı dizgilerle karşılaşıldığında durumlar hariç tutulur. Bu nedenle, bir tablodan bir seçim ile "Farklı seç" sorgusunun yürütülmesi pratik olarak pratik değildir.

sql'de farklı

Ne tür bir duvar kağıdına sahip olduğumuzu, sadece kolaylık sağlamak için, türüne göre sıraladığımız bir durumu düşünün:

Oboi.type SELECT

Oboi siparişinden türüne göre

Ve sonucu aldık:

tip

kâğıt

kâğıt

Çift katmanlı kağıt

Çift katmanlı kağıt

vinil

vinil

bez

Dokuma olmayan polar eldivenler

Dokuma olmayan polar eldivenler

Gördüğünüz gibi, tabloda çift satırlar var. Ayrıcalık seç öğesini eklersek:

Farklı Oboi.type SELECT

Oboi siparişinden türüne göre

sonra tekrar etmeden sonucu alırız:

tip

kâğıt

Çift katmanlı kağıt

vinil

bez

Dokuma olmayan polar eldivenler

Böylece veriler doğru bir şekilde girilmişseTablo, daha sonra çağrı veya alıcıların talebi hemen sonra, sıvı duvar kağıdı, duvar kağıdı ve akrilik duvar kağıdı mağazada mevcut olmadığını cevaplamak mümkün olacak. Mağazalardaki ürün yelpazesinin genellikle yüz duvarla sınırlı olmadığı göz önüne alındığında, benzersiz olmayan türlerin listesini taramak oldukça yoğun olacaktır.

Birleştirilmiş işlevler içinde farklı kullanma

SQL bağımsız argümanı herhangi biriyle kullanılabilirtoplama işlevi. Fakat Min ve Max için, kullanımının herhangi bir etkisi olmayacaktır ve toplamı veya ortalama değeri hesaplarken, tekrarları hesaba katmanın gerekli olmadığı bir durumu hayal etmek nadiren mümkündür.

Depolarımızın ne kadar dolu olduğunu bilmek istediğimizi ve bunun için de depodaki toplam rulo sayısını hesaplayan bir talep gönderdiğimizi varsayalım:

SELECT toplamı (Ostatki.count)

Ostatki’den

Sorgu bir cevap verecektir. 143.

SELECT toplamı (farklı Ostatki.count)

Ostatki’den

o zaman sadece 119 alırız, çünkü duvar 3 ve 7'nin altındaki duvar kağıdı aynı miktarda stokta. Ancak, bu cevabın yanlış olduğu açıktır.

Çoğu zaman, SQL Count fonksiyonu ile kullanılır. Yani, zorluk çekmeden, genellikle sahip olduğumuz benzersiz duvar kağıdı türlerini öğrenebiliriz:

SELECT sayımı (farklı Oboi.type)

Oboi'den

Ve sonuç 5 olsun - kağıt sıradan veiki katmanlı, vinil, kumaş ve dokumasız. Şüphesiz herkes gibi bir reklam gördü: "Sadece 20'den fazla farklı duvar kağıdına sahibiz!", Yani bu mağazada her şeyin bir kaç düzine rulosu yok, ama en çeşitli modern tiplerin duvar kağıdı var.

İlginçtir, bir sorguda belirtebilirsinizFarklı öznitelikli veya ayrı öznitelik birden çok Sayım işlevi. Yani, bu, Select'teki farklılığın bir kereden fazla mevcut olamayacağı tek durumdur.

Bir argümanın kullanımını ne zaman reddetmeliyim

SQL ayrı bağımsız değişkeninin kullanılması iki yoldan biriyle atılmalıdır:

  1. Tablolardan seçiyorsunuz ve emin misiniz?her birindeki değerlerin tekliği. Bu durumda, argüman kullanımı uygun değildir, çünkü bu sunucu veya istemci üzerinde ek bir yüktür (DBMS türüne bağlı olarak).
  2. Gerekli verileri kaybetmekten korkuyorsunuz. Açıklayacağız.

Patronun, sahip olduğunuz duvar kağıdının listesini göstermesini ve yalnızca iki sütunu (tür ve renk) belirtmenizi istediğini varsayalım. Alışkanlığa göre, bağımsız değişkeni belirtirsiniz:

SELECT farklı Oboi.type, Oboi.color

Oboi'den

Oboi.type İLE SİPARİŞ

Ve - bazı verileri kaybedersiniz:

tip

renk

kâğıt

çok renkli

Çift katmanlı kağıt

bej

vinil

kahverengi

vinil

turuncu

bez

pembe

Dokuma olmayan polar eldivenler

bej

Dokuma olmayan polar eldivenler

beyaz

Aslında bizim tek bir kağıt kağıdına sahip olduğumuz görülebilir (geleneksel ve iki katmanlı), aslında küçük masamızda bile iki yazı var (sonuç farklı değil):

tip

renk

kâğıt

çok renkli

kâğıt

çok renkli

Çift katmanlı kağıt

bej

Çift katmanlı kağıt

bej

vinil

kahverengi

vinil

turuncu

bez

pembe

Dokuma olmayan polar eldivenler

beyaz

Dokuma olmayan polar eldivenler

bej

Bu nedenle, herhangi bir sorguda olduğu gibi, ayrı bir argümanla birlikte, eldeki göreve bağlı olarak uygulama ile sorunu dikkatli ve doğru şekilde çözmelidir.

Alternatif farklı

Argümanın zıddı farklıdır.Tümü. Bunu kullandığınızda, çift satırlar kaydedilir. Ancak, varsayılan olarak, DBMS, tüm değerleri yazdırmanın gerekli olduğunu düşünür, Tüm argüman, gerçek bir işlevsel argümandan ziyade bir belirleyiciden daha fazlasıdır.

ayrı sql açıklaması
Şimdi ne zaman anlayacağınızı umuyoruzayrı (SQL) kullanılır. Açıklama, çeşitli sorunları çözerken bu argümanın uygulanmasının tavsiye edilebilirliği hakkında eksiksiz bilgi verdi. Sonuçta, ortaya çıktığı gibi, uygulamada bu kadar basit bir argüman bile, bazı verileri kaybetme ve yanlış bilgiyi ortaya çıkarma olasılığını gizler.

Devamını oku: