KompjutersTipi ta 'fajls

SQL distinti: deskrizzjoni eżempji, proprjetajiet

Spiss meta tuża SQL biex jirkupraw data mill-tabelli, l-utent jirċievi l-informazzjoni żejda hija l-eżistenza ta 'ringieli duplikat assolutament identiċi. Biex tiġi evitata din is-sitwazzjoni, l-użu SQL argument distint fis-sentenza Agħżel. Dan l-artikolu ser jiddiskuti eżempji tal-użu ta 'dan l-argument, kif ukoll sitwazzjonijiet fejn l-applikazzjoni għandha tiġi abbandunata mill-argument.

Qabel ma aħna tipproċedi biex tikkunsidra l-eżempji speċifiċi, joħolqu l-database rikjesta koppja ta 'tabelli.

tabella preparazzjoni

Immaġina li għandna informazzjoni ħwienet database dwar il-wallpaper ppreżentati f'żewġ tabelli. Dan oboi-tabella (wallpaper) ma oqsma id (Identifikatur uniku), tat-tip (tip ta 'wallpaper -. Karta, tal-vinil, eċċ), kulur (kulur), li Struct (struttura) u l-prezz (prezz). U tabella Ostatki (residwi) b'oqsma id_oboi (a referenza għall-identifikatur uniku fit-tabella Oboi) u l-għadd (l-għadd ta 'rollijiet fl-istokk).

Imla t-tabella tad-data. Fit-tabella żid il-wallpaper 9 rekords:

Oboi

id

tip

kulur

Istituzzjonjijiet

prezz

1

karta

multicolor

intaljat

56.9

2

karta double-ub'saffi

beige

lixxa

114.8

3

vinil

oranġjo

intaljat

504

4

suf

beige

intaljat

1020.9

5

karta double-ub'saffi

beige

lixxa

150.6

6

karta

multicolor

lixxa

95.4

7

vinil

kannella

lixxa

372

8

suf

abjad

intaljat

980.1

9

drapp

roża

lixxa

1166.5

It-tabella bl-fdalijiet - u disa rekords:

Ostatki

id_oboi

għadd

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Aħna jipproċedi għad-deskrizzjoni tal-ordni distinta SQL.

Poġġi distinta fil-klawsola Agħżel

argument distint għandu jitpoġġa immedjatament wara l-keyword Agħżel fil-mistoqsijiet. Huwa applikat għall-kolonni kollha speċifikati fis-sentenza Agħżel, minħabba li se jiġi eskluż mir-riżultat mistoqsija finali huwa kordi assolutament identiċi. Għalhekk, ladarba huwa biżżejjed li jkun speċifikat meta tikteb SQL «tagħżel distinti" talba. L-eċċezzjoni hija l-użu ta 'funzjonijiet distinti aggregati ġewwa li tħares lejn ftit aktar tard.

Għandu jiġi mfakkar li ħafna mill-database u ma tirrikonoxxix it-tip tiegħek ta 'talba:

TAGĦŻEL Ostatki.Count distinta, Oboi distinti. *

MILL oboi

Ġewwa jissieħbu Ostatki FUQ Oboi.id = Ostatki.id_oboi

Hemm ma kienx ikkunsidrat l-argument diversi drabi jew darba speċifikat, iżda qabel it-tieni, it-tielet jew il-kolonna magħżula ieħor. Inti ser tirċievi żball li jirrigwarda żball fl sintassi.

Applikazzjoni mistoqsijiet distinti fl-istandard

Huwa ovvju li ma 'tabelli xierqa istruttura tal-bini u jimlewhom fi f'tabella waħda eskluża s-sitwazzjoni meta jkun hemm kordi assolutament identiċi. Għalhekk, l-eżekuzzjoni mistoqsija «Agħżel * distinti» ma 'kampjun ta' tabella waħda ma jkunx prattiku.

Ikkunsidra sitwazzjoni meta għandna bżonn inkunu nafu liema tip għandna wallpaper, biss għall-konvenjenza, biex issolvi skond it-tip:

TAGĦŻEL Oboi.type

MILL ordni Oboi skond it-tip

U tikseb ir-riżultati:

tip

karta

karta

karta double-ub'saffi

karta double-ub'saffi

vinil

vinil

drapp

suf

suf

Kif jidher fit-tabella hemm ringieli duplikat. Jekk aħna żid il-proposta Agħżel distinti:

TAGĦŻEL Oboi.type distinta

MILL ordni Oboi skond it-tip

irridu jiksbu l-riżultat mingħajr ripetizzjoni:

tip

karta

karta double-ub'saffi

vinil

drapp

suf

Għalhekk, jekk jidħlu sew id-data fit-tabella, imbagħad immedjatament wara telefonata jew talba ta 'xerrejja nistgħu risposta għal din l-wallpaper likwidu, fibreglass u wallpaper akriliku disponibbli fil-maħżen mhumiex. Minħabba li l-firxa ta 'ħwienet normalment mhux limitati għal mitt wallpaper, tara l-lista tat-tipi mhux uniku għandu jkun pjuttost xogħol intensiv.

Applikazzjoni ta 'funzjonijiet aggregati distinti fi ħdan

argument distint SQL jistgħu jintużaw ma 'kwalunkwe funzjoni aggregat. Iżda għall-Min u Max applikazzjoni tagħha se jkollha l-ebda effett, iżda meta tikkalkula s-somma jew il-valur medju rarament hija sitwazzjoni fejn l-ebda wieħed ikollu iqisu l-repetizzjonijiet.

Ejja ngħidu li rridu li jivverifika l-kapaċità ta 'maħżen tagħna u biex jibgħat din it-talba, jikkalkula n-numru totali ta' koljaturi fl-istokk:

somma TAGĦŻEL (Ostatki.count)

MILL Ostatki

Talba se tagħti r-risposta 143. Jekk, madankollu, aħna ser tinbidel għal:

somma TAGĦŻEL (Ostatki.count distinta)

MILL Ostatki

irridu jiksbu it-total 119, bħala wallpaper għal numri parti 3 u 7 huma fl-istokk fl-istess ammont. Madankollu, huwa ovvju li r-risposta hija żbaljata.

Użata ħafna drabi fil SQL Għadd funzjoni distinta. Allura, nistgħu faċilment issir taf kif ħafna tipi unika ta 'wallpaper, nagħmlu ikollhom:

għadd TAGĦŻEL (Oboi.type distinta)

MILL oboi

U tikseb ir-riżultat ta '5 - karta ordinarja u tal-vinil ta' saff doppju u drapp mhux minsuġ. Żgur kollha raw l-reklami bħal: "Huwa biss għandna aktar minn 20 tipi differenti ta 'wallpaper," li biha jfisser li dan il-ħanut huwa mhux biss ftit tużżana f'rombli u varjetà ta' tipi moderni wallpaper.

Huwa interessanti li fl-istess mistoqsija, inti tista 'tispeċifika l-funzjonijiet multipli bħal Għadd attribut distinti, u mingħajr ma. Dan huwa l-unika sitwazzjoni fejn distinta fil Select'e jista 'jkun preżenti diversi drabi.

Meta jabbandunaw l-użu tal-argument

Mill-użu ta 'l-argument SQL distinta għandha tiġi abbandunata f'waħda minn żewġ każijiet:

  1. Inti twettaq għażla ta 'tabelli u huma kunfidenti fil-valur uniku kull wieħed. F'dan il-każ, l-użu ta 'l-argument mhuwiex xieraq, minħabba li huwa piż addizzjonali fuq is-server jew klijent (skond it-tip ta' DBMS).
  2. Inti jibżgħu li jitilfu d-data tiegħek. Ejjew jispjegaw.

boxxla jissoponi jitlob li inti lista l-wallpaper li għandek, bl-indikazzjoni ta 'biss żewġ kolonni - it-tip u l-kulur. Mill-vizzju, inti tagħti argument distinti:

TAGĦŻEL Oboi.type distinti, Oboi.color

MILL oboi

ORDNI MILL Oboi.type

U - jitilfu xi data:

tip

kulur

karta

multicolor

karta double-ub'saffi

beige

vinil

kannella

vinil

oranġjo

drapp

roża

suf

beige

suf

abjad

Dan jista 'jagħti l-impressjoni li l-wallpaper karta (konvenzjonali u saff doppju) għandna biss wieħed moħħ, fil-fatt, anki fit-tabella żgħira tagħna ta' żewġ artikolu (tirriżulta mingħajr distinti):

tip

kulur

karta

multicolor

karta

multicolor

karta double-ub'saffi

beige

karta double-ub'saffi

beige

vinil

kannella

vinil

oranġjo

drapp

roża

suf

abjad

suf

beige

Għalhekk, kif bil-miktub kwalunkwe talba mal-ħtieġa distinta argument li tkun attenta u kompetenti biex tiddeċiedi dwar l-applikazzjoni tagħha, skond il-kompitu.

alternattiva distinta

Kuntrarjament għall-argument distinta --argument Kulħadd. Fir-rikors tagħha ringieli duplikat huma maħżuna. Iżda bħala l-database default u jsib li huwa neċessarju li juri l-valuri, l-argument kollha - huwa pjuttost jikkwalifika milli l-argument funzjoni attwali. Nittamaw li inti issa tifhem li distinta (SQL) jintuża. Deskrizzjoni jagħtuk informazzjoni sħiħa dwar il-fattibbiltà ta 'użu dan l-argument biex jissolvew problemi differenti. Wara kollox, peress li rriżulta, anki tali sempliċi argument fir-rikors tagħha ġlud possibbiltà tanġibbli ħafna li jitilfu xi data u juri informazzjoni żbaljata.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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