Tietokoneet, Tiedostotyypit
SQL erillistä: kuvaus, esimerkkejä ominaisuudet
Usein kun käytät SQL hakea tietoja taulukoista, käyttäjä saa tarpeeton tieto on olemassa aivan samanlainen päällekkäisiä rivejä. Tilanteen, käyttää SQL erillistä väitettä lauseessa Select. Tämä artikkeli käsittelee esimerkkejä käytöstä tämän väitteen, sekä tilanteet, joissa hakemus on hylätty sillä perusteella.
Ennen kuin siirrymme tarkastelemaan erityisiä esimerkkejä, luoda tietokanta tarvitaan pari taulukoita.
valmistus taulukko
Kuvitella, että meillä on tietokanta tallentaa tietoa tapetti esitetään kaksi taulukkoa. Tämä taulukko oboi (taustakuvan), jonka tunnus on kentät (yksilöllinen tunniste), joka on tyyppiä (tyyppi tapetti -. Paperi, vinyyli, jne.), Väri (color), struct (rakenne) ja (hinta). Ja taulukko Ostatki (tähteet) kanssa id_oboi kentät (viittaus yksilöllinen tunniste taulukossa Oboi) ja määrä (rullien lukumäärä varastossa).
Täytä tiedot taulukosta. Taulukon lisätä taustakuvan 9 Records:
oboi | ||||
id | tyyppi | väri | struct | hinta |
1 | paperi | monivärinen | kohokuvioitu | 56.9 |
2 | paperi kaksikerroksinen | beige | sileä | 114,8 |
3 | vinyyli | oranssi | kohokuvioitu | 504 |
4 | fleece | beige | kohokuvioitu | 1020,9 |
5 | paperi kaksikerroksinen | beige | sileä | 150,6 |
6 | paperi | monivärinen | sileä | 95,4 |
7 | vinyyli | ruskea | sileä | 372 |
8 | fleece | valkoinen | kohokuvioitu | 980,1 |
9 | kangas | pinkki | sileä | 1166,5 |
Pöydän jäännökset - ja yhdeksän kirjaa:
Ostatki | |
id_oboi | laskea |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Siirrymme kuvauksen erillisiä järjestyksessä SQL.
Aseta erillinen Select lausekkeen
erilliset argumentti tulisi sijoittaa heti Valitse avainsanan kyselyitä. Hän soveltaa kaikkiin sarakkeet määritelty lauseessa Select, koska se jätetään lopullinen kyselyn tulos on täysin samanlainen jousille. Niinpä kun riittää täsmentää kirjoittaessaan SQL «valita eri» pyynnöstä. Poikkeuksena on käyttää erillistä sisällä koostefunktioita että tarkastelemme hieman myöhemmin.
On syytä muistaa, että suurin osa tietokannan ja ei tunnista pyynnön tyyppi:
SELECT eri Ostatki.Count, eri Oboi. * FROM oboi Sisäliitos Ostatki ON Oboi.id = Ostatki.id_oboi |
Siellä ei pidetty väitettä useita kertoja tai kerran määritetty, mutta ennen toisen, kolmannen tai toiseen valittuun sarakkeeseen. Saat virheilmoituksen viittaa virhe syntaksin.
Soveltaminen eri kyselyitä standardi
On selvää, että kunnon rakennuksen pöydät ja täyttämällä ne sisällä yhden pöydän ulkopuolelle tilannetta, kun on täysin samanlainen jousille. Näin ollen kyselyn suorittamisen «Valitse eri *» näytteen kanssa yhden taulukossa on epäkäytännöllinen.
Ajatellaan tilannetta, kun meidän on tiedettävä, millaista meillä taustakuvaksi, vain mukavuussyistä, lajitella tyypin:
VALINTA Oboi.type FROM Oboi järjestyksessä tyyppi |
Ja saada tuloksia:
tyyppi |
paperi |
paperi |
paperi kaksikerroksinen |
paperi kaksikerroksinen |
vinyyli |
vinyyli |
kangas |
fleece |
fleece |
Kuten nähdään taulukosta on päällekkäisiä rivejä. Jos tähän lisätään ehdotus Valitse selvä:
SELECT eri Oboi.type FROM Oboi järjestyksessä tyyppi |
saamme tuloksen ilman toistoa:
tyyppi |
paperi |
paperi kaksikerroksinen |
vinyyli |
kangas |
fleece |
Niinpä jos oikein syöttää tietoja taulukkoon, sitten heti puhelun jälkeen tai pyynnöstä ostajat voimme vastata, että neste tapetit, lasikuitu ja akryyli tapetit kaupassa saatavilla ei ole. Kun otetaan huomioon, että kauppoja ei yleensä ole rajoitettu sataan taustakuva, näyttää luettelon ei-ainutlaatuinen tyypit olisivat varsin työvoimavaltaista.
Soveltaminen eri koostefunktioita sisällä
SQL eri väitettä voidaan käyttää minkä tahansa koostefunktiolla. Mutta Min ja Max sen soveltaminen ei ole vaikutusta, mutta kun lasketaan summa tai keskiarvo on harvoin tilanne, jossa kukaan ei olisi otettava huomioon toistoja.
Oletetaan haluamme tarkistaa kapasiteetin varastoomme ja lähettää tämän pyynnön, laskee kokonaismäärä keloja varastossa:
SELECT summa (Ostatki.count) FROM Ostatki |
Pyyntö antaa vastauksen 143. Jos me kuitenkin muuttuu:
SELECT summa (eri Ostatki.count) FROM Ostatki |
saadaan yhteensä 119, taustakuvaksi osanumerot 3 ja 7 ovat hyllyssä saman verran. On kuitenkin selvää, että vastaus on väärä.
Useimmiten käytetty SQL eri funktio count. Joten, voimme helposti selvittää, kuinka monta ainutlaatuista tyyppisiä tapetti, meillä on:
Valitse määrä (eri Oboi.type) FROM oboi |
Ja saada tulos 5 - tavalliselle paperille ja kaksikerroksiset vinyyli ja ei-kudottu kangas. Varmasti kaikki nähneet mainoksia kuten: "Vain meillä on yli 20 erilaista tapetti" jolla tarkoitetaan sitä, että tämä kauppa ei ole vain pari tusinaa sämpylöitä ja erilaisia tapetti modernin tyyppejä.
On mielenkiintoista, että saman kyselyn, voit määrittää useita toimintoja, kuten Count ominaisuus DISTINCT, ja ilman sitä. Tämä on ainoa tilanne, jossa erillisiä Select'e voi olla läsnä useita kertoja.
Kun luopua käyttöä argumentti
Käytöstä SQL erillisten argumentti tulisi luopua jossakin kahdessa tapauksessa:
- Teet valikoima taulukoita ja luottavat ainutlaatuista arvoa kunkin. Tässä tapauksessa käyttö argumentti on sopimaton, koska se on ylimääräinen kuormitus palvelimen tai asiakkaan (riippuen DBMS).
- Oletko pelkää menettävänsä tietoja. Olkaamme selittää.
Oletetaan pomo pyytää sinua luetella taustakuva, että olet, ja johon on merkitty vain kaksi saraketta - tyyppi ja väri. Tavan, annat argumentti selvä:
SELECT eri Oboi.type, Oboi.color FROM oboi TILAA Oboi.type |
Ja - menettää joitakin tietoja:
tyyppi | väri |
paperi | monivärinen |
paperi kaksikerroksinen | beige |
vinyyli | ruskea |
vinyyli | oranssi |
kangas | pinkki |
fleece | beige |
fleece | valkoinen |
Se voi antaa vaikutelman, että paperi tapetti (tavanomainen ja kaksipuoliset) olemme vain yksi mielessä, itse asiassa, jopa meidän pieni pöytä kahden esineen (seurauksena ilman erillistä):
tyyppi | väri |
paperi | monivärinen |
paperi | monivärinen |
paperi kaksikerroksinen | beige |
paperi kaksikerroksinen | beige |
vinyyli | ruskea |
vinyyli | oranssi |
kangas | pinkki |
fleece | valkoinen |
fleece | beige |
Siksi, kuten kirjallisesti kaikki pyynnöt sillä perusteella selkeä tarve olla varovainen ja toimivalta päättää sen soveltamisesta, tehtävästä riippuen.
vaihtoehtoiset erilliset
Vastoin väitettä eri - Kaikki argumentti. Sen soveltaminen duplikaattien tallennetaan. Mutta oletukseksi tietokanta ja toteaa, että on tarpeen näyttää kaikki arvot väite All - se on pikemminkin karsinta kuin funktion argumentti.
Similar articles
Trending Now