Arvutid, Failitüü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:
- 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).
- 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.
Similar articles
Trending Now