PočítačeTypy souborů

SQL odlišný: popis, příklady, vlastnosti

Často při použití SQL k načtení dat z tabulek, uživatel obdrží redundantní data existence naprosto shodné duplicitní řádky. Aby se předešlo této situaci, použijte odlišný argumentu SQL ve větě Select. Tento článek se bude diskutovat o příklady použití tohoto argumentu, jakož i situace, v nichž by měla být podána opuštěné argument.

Než budeme pokračovat, aby zvážila konkrétní příklady, vytvoření databáze potřebné pár stolů.

příprava tabulky

Představme si, že máme databázi jsou uloženy informace o tapetu prezentovány ve dvou tabulkách. Tato tabulka oboi (tapety) s identifikačním poli (jedinečný identifikátor), typu (typ tapet. - papír, vinyl, atd), barva (barva), struct (konstrukce) a cen (cen). A stolní Ostatki (zbytky) s id_oboi polí (odkaz na jednoznačný identifikační kód v tabulce Oboi) a počtu (počet válců na skladě).

Vyplnit tabulku dat. V tabulce přidat tapetu 9 záznamů:

Oboi

id

typ

barva

struct

cena

1

papír

vícebarevný

reliéfní

56.9

2

Papír dvojvrstvý

béžový

hladký

114,8

3

vinyl

oranžový

reliéfní

504

4

fleece

béžový

reliéfní

1020,9

5

Papír dvojvrstvý

béžový

hladký

150,6

6

papír

vícebarevný

hladký

95.4

7

vinyl

hnědý

hladký

372

8

fleece

bílá

reliéfní

980,1

9

plátno

růžový

hladký

1166,5

V tabulce s ostatky - a devět záznamů:

Ostatki

id_oboi

počítat

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Přistoupíme k popisu zřetelné řádu v SQL.

Umístěte zřetelný v klauzuli SELECT

odlišný argument by měl být umístěn bezprostředně po Vybrat klíčové slovo v dotazech. Se přihlásil do všech sloupců uvedených ve větě Select, protože budou vyloučeny z konečného výsledku dotazu je naprosto identické struny. Takže jakmile je dostatečně specifikovat při psaní SQL «select distinct» žádosti. Výjimkou je použití odlišných funkcí uvnitř kameniva, které vypadají na o něco později.

Je třeba mít na paměti, že většina z databáze a není schopen rozpoznat typ požadavku:

SELECT zřetelný Ostatki.Count, které je odděleno oboi. *

Z Oboi

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

Tam nebylo považováno za tvrzení několikrát nebo jednou uvedeno, ale před druhým, třetím nebo jiného vybraného sloupce. Dostanete chybu s odkazem na chyby v syntaxi.

Použití odlišné dotazy na standardní

Je zřejmé, že se správnými stavební konstrukce stolů a jejich plnění v rámci jedné tabulky vyloučena situace, kdy jsou naprosto identické struny. Proto je spuštění dotazu «Vyberte odlišný *» vzorkem jednoho stolu je nepraktické.

Představme si situaci, kdy musíme vědět, jaký typ máme tapetu, jen pro pohodlí, třídit podle typu:

SELECT Oboi.type

Z Oboi pořadí podle typu

A získat výsledky:

typ

papír

papír

Papír dvojvrstvý

Papír dvojvrstvý

vinyl

vinyl

plátno

fleece

fleece

Jak je vidět v tabulce existují duplicitní řádky. Přidáme-li návrh Vyberte odlišný:

SELECT zřetelný Oboi.type

Z Oboi pořadí podle typu

dostaneme výsledek bez opakování:

typ

papír

Papír dvojvrstvý

vinyl

plátno

fleece

Tedy, pokud je správně zadat data v tabulce, pak ihned po telefonátu nebo požadavku odběratelů můžeme odpovědět, že kapalina tapety, skleněné vlákno a akrylové tapety k dispozici v obchodě nejsou. Vzhledem k tomu, že řada obchodů se obvykle není omezen na sto tapety, zobrazení seznamu nejedinečný typů by bylo docela náročné na pracovní sílu.

Použití různých agregačních funkcí v rámci

SQL odlišný argument může být použit s jakýmkoliv agregační funkce. Ale pro Min a Max své žádosti nebude mít žádný efekt, ale při výpočtu částky nebo průměrná hodnota je zřídka k situaci, kdy by nikdo vzít v úvahu opakování.

Předpokládejme, že chceme zjistit kapacitu našeho skladu a zaslat tento požadavek, spočítá celkový počet závitů na skladě:

SELECT sum (Ostatki.count)

Z Ostatki

Žádost bude dát odpověď 143. Pokud však změníme na:

SELECT součet (zřetelný Ostatki.count)

Z Ostatki

získáme úhrnem 119, jako tapetu Čísla dílů 3 a 7 jsou na skladě ve stejné výši. Je však zřejmé, že odpověď je špatně.

Nejčastěji se používá v SQL odlišné funkce Count. Takže můžeme snadno zjistit, jak mnoho jedinečných druhů tapet, máme:

SELECT count (zřetelný Oboi.type)

Z Oboi

A získat výsledek - 5: obyčejný papír a dvouvrstvou vinyl a netkané textilie. Jistě všichni viděli reklamy, jako například: „Pouze máme více než 20 různých druhů tapet,“ čímž se rozumí, že tento obchod není jen o pár desítek rolí a různé tapety moderních typů.

Je zajímavé, že ve stejném dotazu, můžete zadat celou řadu funkcí jako Count atributů DISTINCT a bez něj. To je jediná situace, kdy odlišné v Select'e mohou být přítomny několikrát.

Kdy opustit použití argumentu

Z použití odlišného argumentu SQL by mělo být upuštěno ve dvou případech:

  1. Je-li provést výběr tabulek a jsme přesvědčeni, v jedinečné hodnoty každého. V tomto případě použití argumentu je nevhodná, protože se jedná o dodatečný náklad na serveru nebo klienta (v závislosti na typu DBMS).
  2. Bojíte se ztráty dat. Pojďme vysvětlit.

Předpokládejme, že šéf požádá, abyste vypsat tapety, které máte s označením pouze dvou sloupců - typ a barvu. Ze zvyku si dát argument zřetelný:

SELECT zřetelný Oboi.type, Oboi.color

Z Oboi

ORDER BY Oboi.type

A - ke ztrátě dat:

typ

barva

papír

vícebarevný

Papír dvojvrstvý

béžový

vinyl

hnědý

vinyl

oranžový

plátno

růžový

fleece

béžový

fleece

bílá

To může vyvolat dojem, že papír tapety (konvenční a dual-layer), máme pouze jednu mysl, ve skutečnosti, a to i v našem malém stolku dvou článku (za následek bez zřetelné):

typ

barva

papír

vícebarevný

papír

vícebarevný

Papír dvojvrstvý

béžový

Papír dvojvrstvý

béžový

vinyl

hnědý

vinyl

oranžový

plátno

růžový

fleece

bílá

fleece

béžový

Proto, jak je písemně jakýkoliv požadavek s argumentem výraznou musí být opatrní a kompetentní rozhodovat o jeho uplatňování, v závislosti na úkolu.

alternativní odlišný

V rozporu s tvrzením zřetelný - Všechny argumenty. Ve svém návrhu jsou duplicitní řádky uloženy. Ale jako výchozí databázi a zjistí, že je nutný k zobrazení všech hodnot, argument All - je to spíše kvalifikant než skutečný argument funkce. Věříme, že si nyní pochopili, že je použit odlišný (SQL). Popis vám úplné informace o proveditelnosti používání tohoto argumentu při řešení různých problémů. Koneckonců, jak se ukázalo, i takový jednoduchý argument ve své žádosti skrývá velmi hmatatelný možnost ztráty některá data a zobrazovat nepřesné informace.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 cs.birmiss.com. Theme powered by WordPress.