, často pri použití SQL na vzorke dát z tabuľky, užívateľských redundantných dát, ktoré sú k dispozícii úplne identické opakované linky. Ak chcete túto situáciu vylúčiť, použije sa výraz SQL v príkaze Select. Tento článok bude obsahovať príklady použitia tohto argumentu, ako aj situácie, v ktorých je lepšie odmietnuť použitie argumentu. Skôr než začneme skúmať konkrétne príklady, vytvoríme v databáze niekoľko požadovaných tabuliek.
Príprava tabuľky
Vyplňte tabuľky s údajmi. Tabuľka tapiet pridať 9 položiek:
,
Oboi
Číslo hodnoty
typu
farby
struct
, cena
1
papiera
Multykolor
Reliéfne
569
(51 )
, 2
papiera dvojvrstvová
béžová
hladký (66 )
, 1148
3
vinyl
Oranžová
Reliéfne
504
4
(97 ) Flizelin
Béžová
5
Papierový dvojvrstvový papier
1506
6 135)
papiera
Multykolor
, hladký
, 954 (150 )
7
vinyl
, Brown
Hladké
, 372
8
v prepojení
(181 ) bielej
Reliéfne
, 9801
,
,
,
, 9
Látka
Pink
, Smooth
, 11665
Tabuľka s pozostatkami - a deväť ' päť záznamy:
ostatky
id_oboi
počtu
1
,
,
,
8
2
12
257) 5
16
6
7
(272 )
7
24
8
32
9
11
Začnime s popisom objednávky používať odlišné v SQL.
Miesto vo vetve Zvoľte rozdielne
Je potrebné pripomenúť, že väčšina databáz a nerozpoznáva prihlášky:
SELECT zreteľný Ostatki.Count, odlišný Oboi * FROM Oboi INNER JOIN pozostatkov ON Oboi. .id = Ostatki.id_oboi
skúmal niekoľkokrát uvedené alebo uvedené tvrdenie, raz, ale pred druhým, tretím alebo iné vыbyraemыm stĺpci. Zobrazí sa chyba s odkazom na nepresnosti v syntaxe.
Uplatnenie inej štandardná požiadavka
SELECT Oboi.type FROM Oboi poradie podľa typu
a získať výsledok :
,
, typ
papiera
papiera
papiera dvojvrstvová (327 )
papiera dvojvrstvová
vinyl
vinyl
tkanina
v prepojení
v prepojení
Ako je vidieť v tabuľke existujú duplicitné riadky. Pridáme Ak vetu Vyberte odlišný:
SELECT zreteľný Oboi.type FROM Oboi poradie podľa typu
dostaneme výsledok bez opakovania:
typu
papiera
papiera dvojvrstvová
vinyl
tkaniny
Flizelin
TakétoV súlade s tým by mali byť vykonané správne uvedené v tabuľke naraz na volanie či priania zákazníkov môžeme odpovedať, že kvapalina tapety, tapety a akrylové Krycie k dispozícii v obchode tu. Vzhľadom na to, že sortiment v obchodoch sa zvyčajne neobmedzuje na sto tapiet, zoznam neunikátnych typov by bol dosť namáhavý.
Použitie v rôznych agregačné funkcie
SELECT sum (Ostatki.count) FROM ostatky
Žiadosť vydá odpoveď 143 . Ak zmeníme na:
SELECT SUM (zreteľný Ostatki.count) FROM ostatky
dostaneme 119 ako tapetu podľa článku 3 a 7 sú na sklade v rovnakej výške. Je však zrejmé, že táto odpoveď je nesprávna. Často sa používa výraz SQL s funkciou Count. Tak môžeme ľahko vidieť, ako veľa jedinečných druhov tapiet sme všetci
SELECT count (zreteľný Oboi.type) FROM Oboi
5 a získať výsledky - obvyklý dvojvrstvový papier, vinyl, tkaniny a bambusu. Pravdepodobne každý videl typ reklamy: "Iba máme viac ako 20 druhov rôznych tapiet!", Čo znamená, že v tomto obchode nie sú desiatky rollov a tapietrôznych moderných typov. Je zaujímavé, že jeden dotaz môžete zadať celý rad funkcií Count atribút na rozdiel od, a bez neho. To je jediná situácia, keď odlišné Select'e možná niekoľkokrát.
Ak sa vzdať tvrdenie
SELECT zreteľný Oboi.type, Oboi.color FROM Oboi ORDER BY Oboi.type
I - k strate niektorých dát:
typu
farba
papier
Multykolor
papiera dvojvrstvová
Beige
vinyl
, Brown
,
, vinyl
, oranžová
tkaniny
Pink
(450 )
, vložka
Beige
v prepojení
bielej
Mo ale vyvolávajú dojem, že papierové tapety (konvenčné a dual-layer) máme len jeden druh, v skutočnosti aj v našej malej tabuľke dvoch bodu (za následok nelíši):
typu
,
, farba
papiera
Multykolor
papiera
Multykolor
papiera dvojvrstvová
Vinyl
, Brown
vinyl
, oranžová
tkaniny
,
,
, Pink
v prepojení
biele
v prepojení (541 )
Beige
Preto, ako je písomne akúkoľvek žiadosť odlišný argument by mal byť čistý a dobre víchrica Problémy uvaty sa jeho použitie v závislosti od úlohy.