ArvutidFailitüüpe

SQL eraldiseisev: kirjelduses, näidetes omadused

Sageli, kui te kasutate SQL andmete toomiseks tabelid, kasutaja saab koondatud andmed olemasolu täiesti identsed Duplikaatread. Selle olukorra vältimiseks kasutage SQL erinevat argumenti lauses Vali. See artikkel räägib näiteid kasutamise see argument, samuti olukordades, kus taotlus tuleks loobuda argument.

Enne astume kaaluda konkreetseid näiteid, luua andmebaas, mida nõutakse paar tabelid.

ettevalmistamisel tabelis

Kujutage ette, et meil on andmebaasi kauplustes informatsioon tapeet esitatud kaks tabelit. See tabel oboi (tapeet) koos id väljad (kordumatu tunnus), tüübi (tüüp tapeet -. Paber, vinüül jne), värv (värv), mis struct (struktuuri) ja hind (hind). Ja tabelis Ostatki (jäägid) koos id_oboi väljad (viide kordumatu tunnus tabelis Oboi) ja arv (rullide arv laos).

Täitke andmed tabelis. Tabelis lisada tapeet 9 kirjeid:

Oboi

id

tüüp

värv

struct

hind

1

paber

mitmevärviline

kõrgreljeefis kujundatud

56,9

2

paber kahekihiline

beež

sile

114,8

3

vinüül

oranž

kõrgreljeefis kujundatud

504

4

fliis

beež

kõrgreljeefis kujundatud

1020,9

5

paber kahekihiline

beež

sile

150,6

6

paber

mitmevärviline

sile

95,4

7

vinüül

pruun

sile

372

8

fliis

valge

kõrgreljeefis kujundatud

980,1

9

riie

roosa

sile

1166,5

Tabelis koos säilmete - ja üheksa kirjed:

Ostatki

id_oboi

loendama

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Astume kirjeldus selge järjestus SQL.

Tee eristuvaks Valige klausel

erinevat argumenti tuleb asetada kohe pärast Valige märksõna päringuid. Ta rakendada kõik veerud täpsustatud lause Valige, sest see ei kuulu lõpliku päringu tulemus on täiesti identsed stringid. Seega, kui on piisavalt täpsustada kirjutamisel SQL «valida erinevat» taotluse. Erandiks on kasutada eraldi sees kokku funktsioonide et vaadata veidi hiljem.

Tuleb meeles pidada, et enamik andmebaasi ja ei tunne oma taotluse liik:

VALI erinevat Ostatki.Count, eraldi Oboi. *

FROM oboi

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

Seal ei peetud argument mitu korda või kui on määratud, kuid enne teise, kolmanda või teise valitud veeru. Saad vea viidates viga süntaks.

Application erinevat päringuid standard

On ilmselge, et nõuetekohase hoone struktuur lauad ja täites neid ühes tabelis välistatud olukord, kui on absoluutselt identsed stringid. Seetõttu päringu teostamise «Valige erinevat *» prooviga ühe tabel on ebapraktiline.

Vaatleme olukorda, kui meil on vaja teada, millist tüüpi on meil tapeet, lihtsalt mugavuse sortimiseks tüüp:

VALI Oboi.type

FROM Oboi et kaupa

Ja saada tulemusi:

tüüp

paber

paber

paber kahekihiline

paber kahekihiline

vinüül

vinüül

riie

fliis

fliis

Nagu näha tabelist on Duplikaatread. Kui lisame ettepaneku Valige erinevad:

VALI erinevat Oboi.type

FROM Oboi et kaupa

saame tulemuse ilma kordamine:

tüüp

paber

paber kahekihiline

vinüül

riie

fliis

Seega, kui korralikult sisestada andmeid tabeli, siis kohe pärast telefonikõne või taotlusel ostjad saame vastata, et vedel tapeet, klaaskiust ja akrüül tapeet saadaval poodi ei ole. Arvestades, et vahemikus poed on tavaliselt mitte ainult sada tapeet, vaadata nimekirja mitteunikaalse tüüpi oleks üsna töömahukas.

Rakendamine erinevad kokku funktsioonide jooksul

SQL erinevat argumenti saab kasutada mis tahes kokku funktsiooni. Aga Min ja Max on selle kohaldamine ei mõjuta, aga kui summa arvutamisel või keskmine väärtus on harva olukord, kus keegi ei pea arvestama kordust.

Oletame, et meil soovite kontrollida suutlikkust meie lattu ja saatma selle, arvutab kokku keritud laos:

SELECT sum (Ostatki.count)

FROM Ostatki

Soovin annab vastuse 143. Kui aga me muutub:

SELECT sum (eraldiseisev Ostatki.count)

FROM Ostatki

saame kokku 119, taustpiltideks tootenumbrite 3 ja 7 on laos samas koguses. Siiski on ilmne, et vastus on vale.

Kõige sagedamini kasutatakse SQL erinevat funktsiooni Krahv. Niisiis, saame kergesti teada, mitu ainulaadne tüüpi tapeet, on meil:

SELECT count (eraldi Oboi.type)

FROM oboi

Ja saada tulemus 5 - tavaline paber ja kahekihiline vinüül ja mittekootud kangast. Kindlasti kõik näinud reklaame, näiteks: "Ainult meil üle 20 erinevaid tapeet," mille all mõeldakse, et see pood ei ole ainult paar tosinat rullid ja erinevaid tapeet kaasaegse liiki.

On huvitav, et sama päringu, saate määrata mitmeid funktsioone, nagu Krahv atribuut eristatav, ja ilma selleta. See on ainus olukord, kus eraldiseisev Select'e võib esineda mitu korda.

Kui loobuda kasutamise argument

Alates kasutamise SQL erinevat argumenti tuleks loobuda kahel juhul:

  1. Sa esitame valikut tabelid ja on kindel unikaalset väärtust iga. Sel juhul kasutamise argument on sobimatu, sest see on täiendav koormus serverile või klient (sõltuvalt DBMS).
  2. Kas sa kardad kaotada oma andmed. Anna meile seletada.

Oletame boss küsib loetleda tapeet, et teil on, millel on märge ainult kaks veergu - tüüpi ja värvi. Välja harjumus, annad argument eraldi:

VALI erinevat Oboi.type, Oboi.color

FROM oboi

ORDER BY Oboi.type

Ja - kaotada mõned andmed:

tüüp

värv

paber

mitmevärviline

paber kahekihiline

beež

vinüül

pruun

vinüül

oranž

riie

roosa

fliis

beež

fliis

valge

See võib jätta mulje, et paber tapeet (tavaline ja dual-layer) oleme ainult üks meeles, tegelikult isegi meie väike laud kahe artikkel (kaasa ilma eraldi):

tüüp

värv

paber

mitmevärviline

paber

mitmevärviline

paber kahekihiline

beež

paber kahekihiline

beež

vinüül

pruun

vinüül

oranž

riie

roosa

fliis

valge

fliis

beež

Seega, nagu kirjalikult mis tahes taotluse argument erinevat vajadust olla ettevaatlik ja pädev otsustama selle rakendamise kohta, sõltuvalt ülesanne.

alternatiivsete erinevat

Vastupidiselt argument eraldi - Kõik argument. Oma taotluse Duplikaatread hoitakse. Aga vaikimisi andmebaasi ja leiab, et see on vajalik, et kuvada kõik väärtused, argument Kõik - see on pigem täpsustava kui tegelik funktsioon argument. Me loodame, et te nüüd aru, et erinevad (SQL) kasutatakse. Kirjeldus teile täielikku teavet kasutamise teostatavust see argument erinevate probleemide lahendamiseks. Lõppude lõpuks, kui selgus, isegi selline lihtne argument hagiavalduses peidab käegakatsutavat võimalust kaotada mõned andmed ja ebatäpset teavet.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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