Kompüter, Fayl növləri
Fərqli SQL: təsviri, nümunələri, xassələri
Siz masalar məlumat almaq üçün SQL istifadə edərkən tez-tez, istifadəçi lazımsız məlumatlar tamamilə eyni cüt satır olmasıdır alır. Bu vəziyyəti qarşısını almaq üçün, cümlə seçin SQL fərqli dəlil istifadə edin. Bu yazı proqram mübahisə tərəfindən tərk edilməlidir olan bu dəlil istifadə nümunələri, eləcə də vəziyyətləri müzakirə edəcək.
biz xüsusi nümunələrini nəzərdən davam əvvəl, masa bir neçə tələb bazası yaradır.
hazırlanması masa
iki cədvəllərdə təqdim divar kağızı haqqında bir verilənlər bazası mağazalar məlumatlar var ki, düşünün. , Rəng (rəng), bir struct (struktur) və qiymət (qiymət) - növü (. Kağız, vinil, və s. Divar kağızı növü) id sahələrində (unikal identifikator) Bu masa oboi (divar kağızı). Və masa Ostatki id_oboi sahələri ilə (qalıqları) və sayı (fond rulonlarda sayı) (cədvəl oboi unikal identifikator istinad).
data masa doldurun. cədvəldə divar kağızı 9 qeydlər əlavə edin:
oboi | ||||
id | növü | rəng | struct | qiymət |
1 | kağız | DEGRADE | desenli | 56.9 |
2 | kağız cüt laylı | bej-rəngli | hamar | 114,8 |
3 | vinil | narıncı | desenli | 504 |
4 | yolmaq | bej-rəngli | desenli | 1020,9 |
5 | kağız cüt laylı | bej-rəngli | hamar | 150.6 |
6 | kağız | DEGRADE | hamar | 95.4 |
7 | vinil | palıdı | hamar | 372 |
8 | yolmaq | ağ | desenli | 980,1 |
9 | parça | çəhrayı | hamar | 1166,5 |
qalıqları ilə masa - doqquz qeydlər:
Ostatki | |
id_oboi | saymaq |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Biz SQL fərqli qaydada təsviri keçin.
Select bənddə fərqli qoyun
fərqli arqument sorğu Select söz dərhal sonra yerləşdirilməlidir. Bu tamamilə eyni strings yekun sorğu nəticəsində xaric olacaq, çünki O, cümlə seçin göstərilən bütün sütunları tətbiq. Belə ki, bir dəfə SQL yazarkən sorğu «ayrı seçmək» müəyyən etmək üçün kifayətdir. istisna sonra bir az baxmaq fərqli daxili ümumi funksiyaları istifadə edir.
Bu məlumat bazası ən ki, yadda olmalıdır və tələbi sizin növü tanımır:
fərqli Ostatki.Count, fərqli oboi seçin. * oboi FROM INNER Oboi.id = Ostatki.id_oboi ON Ostatki OL |
Orada arqument bir neçə dəfə hesab və ya bir dəfə müəyyən deyil, üçüncü ikinci və ya digər seçilmiş sütun əvvəl. Siz sintaksis bir səhv toxunaraq bir səhv olacaq.
standart tətbiqi fərqli sorğu
Bu, tamamilə eyni strings var zaman bir masa ərzində onlara doldurulması müvafiq bina quruluşu masaları ilə vəziyyəti xaric ki, aydındır. Buna görə də, sorğu icra bir masa bir nümunə ilə «fərqli * seçin» mümkün deyil.
biz növü düzmək üçün, yalnız rahatlığı üçün, biz divar kağızı var hansı növ bilmək lazımdır bir vəziyyətə nəzər salaq:
SELECT Oboi.type növü oboi üçün FROM |
Və nəticələr almaq:
növü |
kağız |
kağız |
kağız cüt laylı |
kağız cüt laylı |
vinil |
vinil |
parça |
yolmaq |
yolmaq |
cədvəldə göründüyü kimi cüt satır var. biz təklifi əlavə etsək fərqli seçin:
fərqli Oboi.type SEÇİN növü oboi üçün FROM |
biz təkrar olmadan nəticə almaq:
növü |
kağız |
kağız cüt laylı |
vinil |
parça |
yolmaq |
Düzgün bir masa məlumat daxil Belə ki, sonra dərhal alıcıların bir telefon və ya sorğu sonra mağaza mövcud maye divar kagızı, fiberglas və akril divar kagızı deyil ki, cavab verə bilərsiniz. mağazalar sıra adətən yüz divar kağızı məhdud deyil ki, nəzərə alaraq, olduqca intensiv əmək olardı qeyri-unikal növlərinin siyahısını görmək.
ərzində fərqli ümumi funksiyaları tətbiqi
SQL fərqli dəlil hər hansı bir ümumi funksiyası ilə istifadə edilə bilər. Amma Min və Max onun tətbiqi üçün heç bir təsiri var, lakin məbləğ və ya orta dəyəri hesablanarkən nadir hallarda heç bir nəzərə təkrar almaq lazımdır ki, bir vəziyyət olacaq.
biz anbar tutumu yoxlamaq və bu sorğu göndərmək istəyirəm düşünək, fond rulonlarda ümumi sayı hesablayır:
SELECT məbləğ (Ostatki.count) Ostatki FROM |
Filmlərin 143. Lakin, biz dəyişəcək cavab verəcək:
SELECT məbləğ (fərqli Ostatki.count) Ostatki FROM |
biz hissəsi nömrələri 3 divar kağızı kimi, ümumi 119 almaq və 7 eyni miqdarda fond var. Lakin, cavab səhv olduğunu aydındır.
Ən tez-tez SQL fərqli funksiyası Count istifadə olunur. Belə ki, biz asanlıqla divar kağızı neçə unikal növləri tapa bilərsiniz, biz var:
SELECT count (fərqli Oboi.type) oboi FROM |
Və 5 nəticə əldə - adi kağız və ikiqat qat vinil və qeyri-toxunma parça. Şübhəsiz ki, bütün bu kimi reklam görüldü: olan bu mağaza yalnız bir neçə çox rulonlarda və divar kağızı müasir növləri bir sıra ki, deməkdir "Yalnız biz, divar kağızı, 20-dən çox müxtəlif növ var".
Eyni sorğu, siz Count fərqli aid kimi çox funksiyaları daxil və olmadan edə bilərsiniz ki, maraqlı deyil. Bu Select'e fərqli mövcud bir neçə dəfə ola bilər ki, yalnız bir vəziyyətdir.
Zaman dəlil istifadə imtina
SQL fərqli dəlil istifadə yerlərdən birinə tərk edilməlidir:
- Siz masalar bir seçim çıxış və unikal dəyəri hər əminik. Bu server və ya müştəri (DBMS növündən asılı olaraq) əlavə yük, çünki bu halda, mübahisə istifadə yersizdir.
- sizin data itirmək qorxuruq. Bizə izah edək.
növü və rəngi - Suppose boss yalnız iki sütun göstərilməklə var divar kağızı siyahısı soruşur. vərdiş Out, siz fərqli bir dəlil vermək:
, Oboi.color fərqli Oboi.type SEÇİN oboi FROM ORDER BY Oboi.type |
Və - bəzi məlumatlar itirmək:
növü | rəng |
kağız | DEGRADE |
kağız cüt laylı | bej-rəngli |
vinil | palıdı |
vinil | narıncı |
parça | çəhrayı |
yolmaq | bej-rəngli |
yolmaq | ağ |
Bu kağız (şərti və dual-qat) divar kağızı biz, əslində, hətta iki maddənin bizim kiçik masa yalnız bir mind (ayrı olmadan nəticə) ki, təəssürat verə bilər:
növü | rəng |
kağız | DEGRADE |
kağız | DEGRADE |
kağız cüt laylı | bej-rəngli |
kağız cüt laylı | bej-rəngli |
vinil | palıdı |
vinil | narıncı |
parça | çəhrayı |
yolmaq | ağ |
yolmaq | bej-rəngli |
Buna görə də, vəzifə asılı olaraq, onun tətbiqi haqqında qərar qəbul etmək ehtiyatlı və səlahiyyətli olması dəlil fərqli ehtiyacı hər hansı bir sorğu yazılı kimi.
fərqli alternativ
Bütün dəlil - fərqli dəlil əksinə. onun tətbiqi cüt satır saxlanılır. Amma və default bazası kimi bütün dəyərləri, dəlil Bütün keçirmək üçün zəruri hesab edir ki, - bu, olduqca faktiki funksiyası arqument daha seçmə edir.
Similar articles
Trending Now