RačunalaVrste datoteka

SQL različita: opis, primjere, svojstva

Često kada koristite SQL za dohvaćanje podataka iz tablice, korisnik prima suvišan podatak je postojanje apsolutno identične dvostruke redove. Kako bi izbjegli ovu situaciju, koristiti SQL poseban argument u rečenici Select. Ovaj članak će se raspravljati primjere uporabe ovog argumenta, kao i situacije u kojima se zahtjev treba biti napušten od strane argumenta.

Prije nego što nastavite uzeti u obzir specifične primjere, stvoriti bazu podataka potrebnih par stolova.

tablica priprema

Zamislite da imamo bazu podataka pohranjuje podatke o tapetama predstavljen u dvije tablice. Ova tablica oboi (pozadina) sa id polja (jedinstveni identifikator), koja je vrsta (vrste tapeta -. Papir, vinil, itd), boja (boje), struct (struktura) i cijena (cijena). I stol Ostatki (ostaci) s id_oboi polja (referenca na jedinstveni identifikator u tablici Oboi) i count (broj valjaka na lageru).

Ispunite tablicu podataka. U tablici dodati tapeta 9 evidencije:

Oboi

id

vrsta

boja

struct

cijena

1

papir

šaren

isklesan

56,9

2

papira dvoslojne

bež

glatko

114,8

3

vinil

narančasta

isklesan

504

4

runo

bež

isklesan

1020,9

5

papira dvoslojne

bež

glatko

150,6

6

papir

šaren

glatko

95,4

7

vinil

smeđ

glatko

372

8

runo

bijela

isklesan

980,1

9

tkanina

roze

glatko

1166,5

Tablica s ostacima - i devet evidencije:

Ostatki

id_oboi

računati

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Mi smo prešli na opisu različita reda u SQL.

Postavite različita u SELECT

razlikuje argument treba staviti odmah nakon Select ključnu riječ u upitima. On se primjenjuje za sve stupce navedene u rečenici Select, jer će biti isključeni iz konačnog rezultata upita je apsolutno identične žice. Dakle, jednom je dovoljno navesti prilikom pisanja SQL «odabrati poseban» zahtjev. Iznimka je korištenje različitih unutar agregatnih funkcija koje izgledaju na malo kasnije.

To treba imati na umu da je većina podataka i ne prepoznaje svoju vrstu zahtjeva:

SELECT DISTINCT Ostatki.Count, različit Oboi *.

IZ oboi

INNER JOIN Ostatki NA Oboi.id = Ostatki.id_oboi

Nije se smatrao argument nekoliko puta ili jednom navedeno, ali prije drugog, trećeg ili drugog odabranog stupca. Vi ćete dobiti greška se odnosi na pogreške u sintaksi.

Primjena različitih upiti u standardnom

Očito je da uz pravilnu izgradnju strukture stolova i njihovo punjenje u jednoj tablici isključeni situaciju kada postoji apsolutno identične žice. Stoga, izvršenje upit «Odaberite izrazitu *» na uzorku od jednog stola je nepraktično.

Razmislite o situaciji kada moramo znati što tip imamo pozadinu, samo za praktičnost, razvrstati prema vrsti:

SELECT Oboi.type

IZ Oboi bi po vrsti

I dobiti rezultate:

vrsta

papir

papir

papira dvoslojne

papira dvoslojne

vinil

vinil

tkanina

runo

runo

Kao što se vidi u tablici postoje dvostruki redovi. Ako dodamo prijedlog Odaberi razlikuje:

SELECT DISTINCT Oboi.type

IZ Oboi bi po vrsti

dobili smo rezultat bez ponavljanja:

vrsta

papir

papira dvoslojne

vinil

tkanina

runo

Dakle, ako se pravilno unesete podatke u tablici, a zatim odmah nakon telefonskog poziva ili zahtjev kupaca možemo odgovoriti da je tekućina pozadina, fiberglasa i akril pozadina dostupna u trgovini nisu. S obzirom da je raspon trgovinama obično nije ograničen na sto pozadinu, pregledali popis ne jedinstvenih vrsta će biti prilično intenzivan rad.

Primjena različitih agregata funkcije unutar

SQL različit argument može se koristiti s bilo kojim agregata funkcije. No, za Min i Max njegove primjene neće imati nikakvog učinka, ali kod izračuna iznos ili prosječna vrijednost je rijetko stanje u kojem nitko ne bi uzeti u obzir ponavljanja.

Pretpostavimo da želimo provjeriti kapacitet našeg skladišta i poslati taj zahtjev, izračunava ukupan broj navoja na lageru:

SELECT SUM (Ostatki.count)

IZ Ostatki

Zahtjev će dati odgovor 143. Ako je, međutim, da će se promijeniti u:

SELECT suma (različit Ostatki.count)

IZ Ostatki

dobivamo ukupni 119, kao pozadinu za brojeve dijelova 3 i 7 su na lageru u istom iznosu. Međutim, očito je da je odgovor pogrešan.

Najčešće se koristi u SQL različita funkcija COUNT. Dakle, lako možemo saznati kako mnoge jedinstvene vrste tapeta, mi imamo:

SELECT kut (različit Oboi.type)

IZ oboi

I dobiti rezultat 5 - obični papir i dvoslojni vinil i ne-tkani tkanina. Sigurno svi vidjeli reklame kao što su: „Samo imamo više od 20 različitih vrsta tapeta”, pod kojim se podrazumijeva da taj dućan nije samo par desetaka peciva i raznih pozadina modernih tipova.

Zanimljivo je da se u isti upit, možete navesti više funkcija kao što su Točka pripisuju različita, i bez njega. To je jedina situacija u kojoj razlikuje u Select'e mogu biti prisutni nekoliko puta.

Kada napustiti korištenje argumenta

Od korištenja SQL različita argumenta treba napustiti u jednom od dva slučaja:

  1. Vi izvršiti izbor stolova i uvjereni smo u jedinstvenoj vrijednosti svakog. U tom slučaju, korištenje argumenta je neprimjerena, jer je to dodatno opterećenje na server ili klijent (ovisno o vrsti DBMS).
  2. Bojite li se gubitka podataka. Neka nam objasni.

Pretpostavimo da gazda traži da se popis pozadinu da ste, sa naznakom samo dva stupca - vrstu i boju. Iz navike, dati argument različit:

SELECT DISTINCT Oboi.type, Oboi.color

IZ oboi

ORDER BY Oboi.type

A - izgubiti neke podatke:

vrsta

boja

papir

šaren

papira dvoslojne

bež

vinil

smeđ

vinil

narančasta

tkanina

roze

runo

bež

runo

bijela

To može dati dojam da je papir pozadina (konvencionalni i dvoslojni) smo samo jedan um, u stvari, čak iu našem malom stolu dva članka (rezultat bez izraženi):

vrsta

boja

papir

šaren

papir

šaren

papira dvoslojne

bež

papira dvoslojne

bež

vinil

smeđ

vinil

narančasta

tkanina

roze

runo

bijela

runo

bež

Dakle, kao što je u pisanom obliku svaki zahtjev s argumentom izrazitu potrebu da bude oprezan i nadležno da odlučuje o njegovoj primjeni, ovisno o zadatku.

alternativa različita

Za razliku od argumenta različita - Sva argument. U svojoj prijavi duple redovi su pohranjene. No, kao i standardnoj bazi podataka i smatra da je potrebno prikazati sve vrijednosti, argument sve - to je prilično kvalifikacijska od stvarnog argumenta funkcije. Nadamo se da ćete sada shvatiti da različita (SQL) se koristi. Opis vam dati potpunu informaciju o izvedivosti koristeći ovaj argument u rješavanju problema. Uostalom, kako se ispostavilo, čak i tako jednostavan argument u svojoj primjeni krije vrlo opipljivu mogućnost gubitka neke podatke i prikazati netočne informacije.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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