SQL različita: opis, primjeri, svojstva

Često, kada koristite SQL za preuzimanje podataka iz tablica, korisnik prima suvišne podatke, što se sastoji u prisutnosti apsolutno identičnih duplih redaka. Da biste izuzeli tu situaciju, upotrijebite SQL različit argument u odabiru klauzule. U ovom ćemo članku razmotriti primjere korištenja ovog argumenta, kao i situacije u kojima je bolje napustiti argument.

Prije nego što počnemo uzeti u obzir specifične primjere, izradit ćemo nekoliko potrebnih tablica u bazi podataka. sql različit

Priprema tablica

Zamislite da smo u bazi podataka pohranili podatke o pozadini, predstavljenim u dvije tablice. Ovo je Oboi stol (pozadina) s idovima polja (jedinstveni identifikator), vrstu (vrsta tapeta - papir, vinil, itd.), Boju, strukturu i cijenu. I ostatki stol (ostaci) s polja id_oboi (referenca na jedinstveni identifikator u tablici Oboi) i računati (broj role u skladištu).

Ispunite tablice s podacima. U tablici s pozadinom dodajte 9 unosa:

Oboi

id

vrsta

boja

struct

cijena

1

papir

šaren

isklesan

56,9

2

Dvoslojni papir

bež

glatko

114,8

3

vinil

narančasta

isklesan

504

4

Non-tkane rukavice od runo

bež

isklesan

1020,9

5

Dvoslojni papir

bež

glatko

150,6

6

papir

šaren

glatko

95,4

7

vinil

smeđ

glatko

372

8

Non-tkane rukavice od runo

bijela

isklesan

980,1

9

tkanina

roze

glatko

1166,5

U tablici s ostatcima postoje devet zapisa:

Ostatki

id_oboi

računati

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Počnimo s opisom načina korištenja različitog u SQL-u.

Mjesto razlikuje u odabranoj klauzuli

Različiti argument treba postaviti odmah nakon odabira ključne riječi u upitu. Primjenjuje se odmah na sve stupce navedene u odjeljku Odabir jer će isključiti apsolutno identične retke od rezultata upita. Dakle, dovoljno je navesti "select distinct" prilikom pisanja SQL upita. Jedina iznimka je uporaba različitih unutar zbirnih funkcija, koje ćemo razmotriti malo kasnije. sql odaberite različito

Treba imati na umu da većina DBMS-a ne prepoznaje vaš zahtjev kao što je ovaj:

ODABIRjte različite Ostatki.Count, različite Oboi. *

OD Oboja

INNER JOIN Ostatki NA Oboi.id = Ostatki.id_oboi

Ovdje argument je naveden nekoliko puta ili naveden jednom, ali prije drugog, trećeg ili drugog odabranog stupca. Dobit ćete pogrešku s pozivom na netočnosti u sintaksi.

Koristeći različite u standardnim uputama



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. različita u sql

Zamislite situaciju u kojoj trebamo saznati koju vrstu pozadine imate, samo za praktičnost, sortirati po vrsti:

SELECT Oboi.type

OD Oboja po vrsti

I dobijemo rezultat:

vrsta

papir

papir

Dvoslojni papir

Dvoslojni papir

vinil

vinil

tkanina

Non-tkane rukavice od runo

Non-tkane rukavice od runo

Kao što vidite, u tablici su dva retka. Ako dodamo stavku Odaberi zasebnu klauzulu:

ODABIRjte različite Oboi.type

OD Oboja po vrsti

onda dobijemo rezultat bez ponavljanja:

vrsta

papir

Dvoslojni papir

vinil

tkanina

Non-tkane rukavice od runo

Dakle, ako su podaci ispravno uneseni u tablice, odmah nakon poziva ili zahtjeva kupaca moći ćemo odgovoriti da tekuća pozadina, stakleni zidovi i akrilna pozadina nisu dostupni u trgovini. S obzirom da asortiman u trgovinama obično nije ograničen na stotinu pozadina, bilo bi prilično radno intenzivno skenirati popis ne-jedinstvenih vrsta.

Koristeći različite funkcije agregata

SQL se može koristiti s bilo kojom agregatnom funkcijom. 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 zbroj (Ostatki.count)

OD Ostatki

Upit će vratiti odgovor 143. Ako promijenimo:

SELECT zbroj (različit Ostatki.count)

OD Ostatki

onda dobijemo samo 119, jer je pozadina prema člancima 3 i 7 na zalihi u istoj količini. Međutim, očigledno je da taj odgovor nije točan.

Najčešće se SQL koristi s funkcijom Count. Dakle, bez poteškoća možemo saznati koliko jedinstvenih vrsta tapeta obično imamo:

Broj SELECT (različit Oboi.type)

OD Oboja

I dobiti rezultat 5 - papir obični i dvoslojni, vinil, tkanina i netkane. Sigurno su svi vidjeli oglas kao što je: "Imamo samo više od 20 vrsta različitih pozadina!", Što znači da u ovoj trgovini ne postoji nekoliko desetaka svitaka, već pozadina najrazličitijih modernih tipova.

Zanimljivo je da u jednom zahtjevu možete odrediti nekoliko funkcija Count s ili bez različitog atributa. To je, ovo je jedina situacija u kojoj se razlikuje u Select može biti prisutna nekoliko puta.

Kada trebam odbiti uporabu argumenta

Upotreba SQL različitog argumenta treba odbaciti na jedan od dva načina:

  1. Izaberite iz tablica i sigurni ste u jedinstvenost vrijednosti u svakoj. U tom je slučaju uporaba argumenta neprikladna jer je to dodatno opterećenje na poslužitelju ili klijentu (ovisno o vrsti DBMS-a).
  2. Bojite se gubitka potrebnih podataka. Objasnit ćemo.

Pretpostavimo da šef od vas traži da prikažete popis pozadina koje imate, što ukazuje samo na dva stupca - vrstu i boju. Prema naviku, određujete različit argument:

ODABERITE različite Oboi.type, Oboi.color

OD Oboja

NARUDŽBA Oboi.type

I - izgubiti neke od podataka:

vrsta

boja

papir

šaren

Dvoslojni papir

bež

vinil

smeđ

vinil

narančasta

tkanina

roze

Non-tkane rukavice od runo

bež

Non-tkane rukavice od runo

bijela

Može se pojaviti da imamo samo jednu vrstu papirne pozadine (konvencionalna i dvoslojna), iako u našem malom stolu zapravo imaju dva članka (rezultat bez razlike):

vrsta

boja

papir

šaren

papir

šaren

Dvoslojni papir

bež

Dvoslojni papir

bež

vinil

smeđ

vinil

narančasta

tkanina

roze

Non-tkane rukavice od runo

bijela

Non-tkane rukavice od runo

bež

Stoga, kao u pisanju bilo kakvog upita, s različitim argumentom, moramo paziti i ispravno riješiti problem s njegovom primjenom, ovisno o zadatku u ruci.

Alternativna razlika

Suprotno različitom argumentu je sva argument. Kada ga koristite, spremljene su duple crte. 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. izrazit sql opisNadamo se da sada razumijete kada se koriste različiti (SQL). Opis vam je dao potpune informacije o preporuci primjene ovog argumenta pri rješavanju raznih problema. Uostalom, kao što se ispostavilo, čak i takav jednostavni argument u svojoj primjeni skriva vrlo opipljivu vjerojatnost gubitka podataka i zaključivanja netočnih informacija.

Dijelite na društvenim mrežama:

Povezan
Coalesce sql: opis, upotreba, primjeriCoalesce sql: opis, upotreba, primjeri
Kako kombinirati dvije tablice u "Rijeci" vodoravno ili okomitoKako kombinirati dvije tablice u "Rijeci" vodoravno ili okomito
Kako sastaviti SQL upite - detaljni primjeriKako sastaviti SQL upite - detaljni primjeri
Koji su podaci? Vrste podatakaKoji su podaci? Vrste podataka
O tome kako prenijeti tablicu iz Excela u WordO tome kako prenijeti tablicu iz Excela u Word
MySQL - što je to? Pogreška MySQL-aMySQL - što je to? Pogreška MySQL-a
Što je identifikator i gdje se koristi?Što je identifikator i gdje se koristi?
DB je ... Vrste i svojstva baze podatakaDB je ... Vrste i svojstva baze podataka
MySQL - zahtjev u zahtjevu. MySQL: primjeri upita. Ugrađeni MySQL upitiMySQL - zahtjev u zahtjevu. MySQL: primjeri upita. Ugrađeni MySQL upiti
SQL gdje: metode primjene i primjeriSQL gdje: metode primjene i primjeri
» » SQL različita: opis, primjeri, svojstva
LiveInternet