RačunalnikiVrste datotek

SQL prepoznavna: opis, primeri, lastnosti

Pogosto, ko uporabljate SQL za pridobivanje podatkov iz tabel, uporabnik prejme odveč podatki o obstoju povsem identičnih podvojenih vrstic. Da bi se izognili tej situaciji, uporabite SQL poseben argument v stavku Izberi. Ta članek bodo razpravljali primeri uporabe tega argumenta, kot tudi primere, v katerih je treba zahtevek zapuščene trditev.

Preden bomo nadaljevali preučiti konkretne primere, ustvariti bazo podatkov potreboval nekaj tabel.

priprava miza

Predstavljajte si, da imamo zbirki podatkov o ozadje, predstavljeno v dveh tabelah je. Ta tabela OBOI (ozadje) z id polja (edinstvena oznaka), po vrsti (vrsti ozadje -. Papir, vinil, itd), barva (barve), ki je struct (struktura) in cena (cena). In miza Ostatki (ostanki) z id_oboi področjih (sklic na enolično identifikacijsko oznako v tabeli OBOI) in število (število valjev na zalogi).

Izpolnite tabelo podatkov. V tabeli dodati ozadje 9 evidence:

OBOI

id

tip

barva

struct

cena

1

papir

multicolor

reliefna

56,9

2

papir dvoslojna

bež

gladka

114,8

3

vinil

Oranžna

reliefna

504

4

Fleece

bež

reliefna

1020,9

5

papir dvoslojna

bež

gladka

150,6

6

papir

multicolor

gladka

95.4

7

vinil

rjava

gladka

372

8.

Fleece

bela

reliefna

980,1

9.

krpo

roza

gladka

1166,5

V tabeli z ostanki - in devet evidenc:

Ostatki

id_oboi

računati

1

8.

2

12

3

24

4

9.

5

16

6

7

7

24

8.

32

9.

11

Nadaljujemo z opisom izrazito da v SQL.

Postavite razlikuje v SELECT

razlikuje argument je treba dati takoj po Izberite ključno besedo na poizvedbe. On uporablja za vse stolpce, določenih v stavku Izberite, ker bo izključen iz končnega rezultata poizvedbe je popolnoma identični strune. Torej, ko je dovolj, da določite pri pisanju SQL "izberite poseben» zahtevo. Izjema je uporaba različnih znotraj sestavljenih funkcij, ki so videti na malo kasneje.

Ne smemo pozabiti, da je večina baze podatkov in ne prepozna vrsto zahteve:

SELECT izrazito Ostatki.Count, ki se razlikuje OBOI. *

IZ OBOI

INNER JOIN Ostatki NA Oboi.id = Ostatki.id_oboi

Tam ni zdelo večkrat argument ali enkrat določena, vendar pred drugega, tretjega ali drugega izbranega stolpca. Boste dobili napako, ki se nanaša na napake v skladnji.

Uporaba različnih poizvedb v standardni

Očitno je, da z ustrezno strukturo tabel, stavb in njihovo polnjenje v eni tabeli izključena situacijo, ko so popolnoma enake strune. Zato je izvedba izraz "Izberite poseben *» z vzorcem ene tabele je nepraktično.

Pomislite na situacijo, ko moramo vedeti, kakšne vrste imamo ozadje, samo za udobje, razvrstiti po vrsti:

SELECT Oboi.type

IZ OBOI, da po vrsti

In dobili rezultate:

tip

papir

papir

papir dvoslojna

papir dvoslojna

vinil

vinil

krpo

Fleece

Fleece

Kot je razvidno iz tabele so podvojene vrstice. Če k temu dodamo še predlog Izberite razlikuje:

IZBERITE poseben Oboi.type

IZ OBOI, da po vrsti

smo dobili rezultat brez ponavljanja:

tip

papir

papir dvoslojna

vinil

krpo

Fleece

Torej, če pravilno vnesti podatke v tabeli, nato pa takoj po telefonskem klicu ali zahtevo kupcev bomo lahko odgovorili, da se tekočina ozadje, steklena vlakna in akril ozadje na voljo v trgovini, niso. Glede na to, da se je obseg trgovine navadno ni omejena na sto ozadje, pogled na seznam, ki niso edinstvene vrste bi bilo zelo delovno intenzivna.

Uporaba različnih agregatnih funkcij znotraj

SQL razlikuje argument se lahko uporablja s katerim koli agregatno funkcijo. Ampak za Min in Max tožbi ne bo imelo učinka, vendar pri izračunu vsoto ali povprečno vrednost je redko stanje, v katerem bi bilo nikogar, ki bi upoštevala ponovitev.

Recimo, da želimo preveriti zmogljivost našega skladišča in poslati to zahtevo, izračuna skupno število tuljav na zalogi:

SELECT vsota (Ostatki.count)

IZ Ostatki

Zahteva bo Odgovor 143. Če pa bomo spremeniti, da:

SELECT vsota (prepoznavna Ostatki.count)

IZ Ostatki

dobimo skupno 119, kot ozadje za del številk 3 in 7 so na zalogi v enakem znesku. Vendar pa je očitno, da je odgovor napačen.

Najpogosteje se uporablja v SQL različni funkciji grofa. Torej, bomo z lahkoto ugotovili, kako veliko različnih vrst ozadje, nam še:

SELECT count (ločena Oboi.type)

IZ OBOI

In dobili rezultat 5 - običajni papir in dvoplastni vinil in netkane tkanine. Zagotovo vsi videli oglase, kot so: "Samo imamo več kot 20 različnih vrst ozadje", s katerim je pomenilo, da je ta trgovina ni samo par ducat rol in različne ozadje sodobnih vrst.

Zanimivo je, da v istem poizvedbo, lahko podate več funkcij kot Štetje pripisujejo DISTINCT, in brez nje. To je edini primer, v katerem se lahko razlikuje v Select'e biti prisotni večkrat.

Ko opustiti uporabo argumenta

Z uporabo SQL izrazito trditev bi bilo treba opustiti v enem od dveh primerov:

  1. Izvedete izbor tabel in so prepričani v edinstveno vrednost vsakega. V tem primeru je uporaba argumenta je neprimerna, ker je to dodatna obremenitev za strežnik ali odjemalec (odvisno od vrste DBMS).
  2. Se bojite izgube podatkov. Naj nam pojasni.

Recimo šef zahteva, da seznam ozadje, ki ga imajo, z navedbo le dveh stebrov - vrsto in barvo. Iz navade, daš argument poseben:

SELECT poseben Oboi.type, Oboi.color

IZ OBOI

ORDER BY Oboi.type

In - izgubili nekaj podatkov:

tip

barva

papir

multicolor

papir dvoslojna

bež

vinil

rjava

vinil

Oranžna

krpo

roza

Fleece

bež

Fleece

bela

To lahko daje vtis, da je papir ozadje (konvencionalno in dvoslojni) smo le en um, v resnici, tudi v naši majhni mizi dva člena (posledica ne razlikuje):

tip

barva

papir

multicolor

papir

multicolor

papir dvoslojna

bež

papir dvoslojna

bež

vinil

rjava

vinil

Oranžna

krpo

roza

Fleece

bela

Fleece

bež

Zato, kot je v pisni obliki vsak zahtevek z argumentom izrazito treba biti previden in je pristojen za odločanje o tožbi, glede na nalogo.

alternativa razlikuje

V nasprotju s trditvijo izrazito - All argument. V tožbi so podvojene vrstice shranjeni. Ampak kot privzeti bazi podatkov in ugotovi, da je treba za prikaz vseh vrednosti, argument vse - to je precej kvalifikacijski od dejanske funkcije argumenta. Upamo, da boste sedaj razumeli, da se uporabljajo različni (SQL). Opis vam popolne informacije o izvedljivosti uporabe tega argumenta pri reševanju različnih problemov. Navsezadnje, kot se je izkazalo, tudi tako preprosta trditev v tožbi skriva zelo konkretno možnost izgubili nekaj podatkov in prikaz netočne podatke.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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