Kompjutera, Lloje file
SQL dallueshme: përshkrimi, shembuj, pronat
Shpesh, kur ju përdorni SQL për të rifitoj të dhënave nga tabelat, përdoruesi merr të dhënat tepërt është ekzistenca e një rreshtave absolutisht identike kopjuar. Për të shmangur këtë situatë, të përdorin argumentin e dallueshme SQL në fjalinë Select. Ky artikull do të diskutojë shembuj të përdorimit të këtij argumenti, si dhe situata në të cilën aplikimi duhet të braktisur nga argumenti.
Para se të vazhdojmë të marrin në konsideratë shembuj specifikë, të krijojë bazën e të dhënave e kërkuar një çift të tabelave.
Tabela përgatitja
Paramendoni se ne kemi një bazë të dhënash dyqane informacion në lidhje me sfond paraqitur në dy tabelat. Kjo oboi tabelë (muri) me fusha id (identifikues unik), të tipit (llojin e letër-muri -. Paper, vinyl, etj), ngjyra (me ngjyra), një struct (struktura) dhe çmimi (çmimi). Dhe tabela Ostatki (mbetjet) me fusha id_oboi (një referencë për identifikues unik në tabelën Oboi) dhe numërimin (numri i rrotullon në magazinë).
Plotësoni tabelën e të dhënave. Në tabelën shtoni fotografinë 9 të dhënat:
Oboi | ||||
id | lloj | ngjyrë | struct | çmim |
1 | letër | shumëngjyrësh | embossed | 56.9 |
2 | letër të dyfishtë-shtresa | bezh | butë | 114,8 |
3 | vinyl | portokall | embossed | 504 |
4 | qeth | bezh | embossed | 1020,9 |
5 | letër të dyfishtë-shtresa | bezh | butë | 150.6 |
6 | letër | shumëngjyrësh | butë | 95.4 |
7 | vinyl | bojë kafe | butë | 372 |
8 | qeth | e bardhë | embossed | 980,1 |
9 | leckë | rozë | butë | 1166,5 |
Tabela me eshtrat - dhe nëntë të dhënat:
Ostatki | |
id_oboi | akuzë |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Ne të vazhdojë në përshkrimin e rendit të veçantë në SQL.
Vendin dallueshme në Select pikën
Argumenti i veçantë duhet të vendoset menjëherë pas Zgjidh fjalen në pyetje. Ai aplikohet në të gjitha kolonat e përcaktuara në fjalinë Select, sepse ajo do të përjashtohet nga rezultati përfundimtar query është strings absolutisht identike. Kështu, një herë është e mjaftueshme për të specifikuar kur shkruani SQL «zgjedhur të veçantë» kërkesë. Përjashtim është përdorimi i funksioneve të ndryshme agregate brenda që duken në pak më vonë.
Ajo duhet të mbahet mend se shumica e të dhënave dhe nuk e njeh llojin tuaj të kërkesës:
SELECT Ostatki.Count të veçantë, Oboi dallueshme. * NGA oboi INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi |
Nuk u konsiderua argumenti disa herë ose herë të specifikuara, por para se të dytë, të tretë apo një tjetër kolonë e zgjedhur. Ju do të merrni një gabim duke iu referuar një gabim në sintaksë.
Aplikimi pyetje të dallueshme në standarde
Është e qartë se me tavolina duhura strukturës së ndërtesës dhe të plotësojë ato brenda një tavolinë të vetme përjashtohet situatën kur ka strings absolutisht identike. Prandaj, ekzekutimi query «Zgjidhni dallueshme *» me një mostër e një tabelë është jopraktike.
Konsideroni një situatë kur ne kemi nevojë të dimë se çfarë lloji ne kemi letër-muri, vetëm për lehtësi, për të zgjidhur sipas llojit:
SELECT Oboi.type NGA mënyrë Oboi sipas llojit |
Dhe për të marrë rezultatet:
lloj |
letër |
letër |
letër të dyfishtë-shtresa |
letër të dyfishtë-shtresa |
vinyl |
vinyl |
leckë |
qeth |
qeth |
Siç shihet në tabelë ka rreshta kopjuar. Në qoftë se ne shtoni propozimin Zgjidhni dallueshme:
SELECT Oboi.type të veçantë NGA mënyrë Oboi sipas llojit |
marrim rezultatin pa përsëritje:
lloj |
letër |
letër të dyfishtë-shtresa |
vinyl |
leckë |
qeth |
Kështu, në qoftë se duhet të shkruani të dhënat në një tabelë, pastaj menjëherë pas një telefonate apo kërkesës së blerësit ne mund të përgjigjem se muri të lëngshme, tekstil me fije qelqi dhe letër akrilik në dispozicion në dyqan nuk janë. Duke pasur parasysh se gama e dyqaneve zakonisht nuk është i kufizuar në njëqind sfond, të parë listën e llojeve jo-unik do të jetë mjaft e punës intensive.
Aplikimi i funksioneve të ndryshme agregate brenda
Argumenti SQL dallueshëm mund të përdoret me ndonjë funksion agregate. Por për Min dhe Max zbatimit të saj do të ketë efekt, por kur llogaritet shuma apo vlera mesatare është e rrallë një situatë ku askush nuk do të duhet të marrë parasysh repetitions.
Supozoni se ne duam të kontrolloni kapacitetin e depo tonë dhe për të dërguar këtë kërkesë, llogarit numri i përgjithshëm i mbështjellje në magazinë:
shuma SELECT (Ostatki.count) NGA Ostatki |
Kërkesa do të japë përgjigje 143. Nëse, megjithatë, ne do të ndryshojë në:
shuma SELECT (Ostatki.count dallueshme) NGA Ostatki |
ne marrim totale 119, si sfond për numrat pjesën 3 dhe 7 janë në magazinë në të njëjtën sasi. Megjithatë, është e qartë se përgjigja është e gabuar.
përdoret më shpesh në SQL funksion dallueshme Count. Pra, ne mund të gjeni lehtësisht se sa shumë lloje unike të letër-muri, ne kemi:
Numërimi SELECT (Oboi.type dallueshme) NGA oboi |
Dhe për të marrë rezultatin e 5 - letër të zakonshëm dhe double-layer vinyl dhe jo-pëlhurave të endura. Me siguri të gjithë e parë reklama të tilla si: "Vetëm ne kemi mbi 20 lloje të ndryshme të letër-muri", me të cilën është menduar se ky dyqan është jo vetëm një çift duzinë rrotullon dhe një shumëllojshmëri të llojeve muri moderne.
Është interesante se në të njëjtën pyetje, ju mund të specifikoni funksione të shumta si Count atribut të dallueshme, dhe pa atë. Kjo është situata vetëm ku të dallueshme në Select'e mund të jetë i pranishëm disa herë.
Kur të braktisin përdorimin e argumentit
Nga përdorimi i argumentit të veçantë SQL duhet të braktiset në një prej dy raste:
- Keni kryer një përzgjedhje të tabelave dhe jemi të bindur në vlerën unike secilin. Në këtë rast, përdorimi i argumentit është e papërshtatshme, sepse është një ngarkesë shtesë në server ose klient (në varësi të llojit të DBMS).
- A jeni i frikësuar e humbjes së të dhënave tuaja. Le të shpjegojmë.
Bosi Supozoj ju pyet tek lista sfond që ju keni, me tregues të vetëm dy kolona - llojin dhe ngjyrën. Për forcë zakoni, ju japin një argument të veçantë:
SELECT Oboi.type të veçantë, Oboi.color NGA oboi ORDER BY Oboi.type |
Dhe - të humbni disa të dhëna:
lloj | ngjyrë |
letër | shumëngjyrësh |
letër të dyfishtë-shtresa | bezh |
vinyl | bojë kafe |
vinyl | portokall |
leckë | rozë |
qeth | bezh |
qeth | e bardhë |
Ajo mund të japë përshtypjen se letra muri (konvencionale dhe dual-layer) ne kemi vetëm një mendje, në fakt, edhe në tryezën tonë të vogël të dy nenit (rezultojë pa dallueshme):
lloj | ngjyrë |
letër | shumëngjyrësh |
letër | shumëngjyrësh |
letër të dyfishtë-shtresa | bezh |
letër të dyfishtë-shtresa | bezh |
vinyl | bojë kafe |
vinyl | portokall |
leckë | rozë |
qeth | e bardhë |
qeth | bezh |
Prandaj, ashtu si me shkrim çdo kërkesë me nevojën veçantë argumentit të jenë të kujdesshëm dhe kompetent për të vendosur për zbatimin e saj, në varësi të detyrës.
alternative të dallueshme
Në kundërshtim me argumentin veçantë - Të gjitha të argumentit. Në zbatim të tij rreshtat kopjuar janë të ruajtura. Por si bazën e të dhënave parazgjedhur dhe konstaton se është e nevojshme për të shfaqur të gjitha vlerat, argumenti gjitha - kjo është më tepër një kualifikueset se argumentit aktual funksion.
Similar articles
Trending Now