OrdenagailuakFitxategi motak

SQL bereizgarria: deskribapena, adibideak, propietateak

Sarritan, mahaien informazioa berreskuratzeko SQL erabiltzen denean, erabiltzaileak datu erredundanteak jasotzen ditu, errenkada bikoiztuak berdinak direnez. Egoera hori baztertzeko, erabili SQL argumentu desberdina Hautatu klausulan. Artikulu honetan argumentu hau erabiltzerakoan adibide batzuk aztertuko ditugu, baita argudioa uzteko hobeak ere.

Adibide zehatzak kontuan hartzen hasi baino lehen, beharrezko datu-baseko pare bat egingo ditugu datu-basean.

Taulak prestatzea

Imajinatu datu-basean horma-paperari buruzko informazioa gordetzen dugunean, bi tauletan aurkezten dugula. Hau da Oboi taula (atzeko planoaren) eremuen IDa (identifikatzaile bakarra), mota (wallpaper mota - papera, biniloa, etab.), Kolorea, egitura eta prezioa. Ostatki taulak (bazterrak) id_oboi eremuak (Oboi mahaian identifikatzaile bakarra den erreferentzia) eta zenbaketa (biltegian erroiluak).

Bete datuen taulak. Horma-papera duten mahai gainean 9 sarrera gehituko ditugu:

Oboi

id

mota

color

egitura

prezioa

1

paper

multicolor

errektifikatu

56,9

2

Bi geruza paper

beige

leuna

114,8

3

binilo

Orange

errektifikatu

504

4

Ez ehundutako ehunak

beige

errektifikatu

1020,9

5

Bi geruza paper

beige

leuna

150.6

6

paper

multicolor

leuna

95,4

7

binilo

marroiak

leuna

372

8

Ez ehundutako ehunak

Zuri-

errektifikatu

980,1

9

oihal

arrosa

leuna

1166,5

Mahaian gainerakoak bederatzi erregistro daude:

Ostatki

id_oboi

zenbatu

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Dezagun SQL-en nola erabiltzen den deskribatuz.

Leku desberdinetan Hautatu klausulan

Argumentu ezberdina berehala jarri behar da Hautazko gako-hitzak kontsultak egin ostean. Aukerazko klausulan zehaztutako zutabe guztietan aplikatzen da berehala, kontsulta emaitzatik errenkaden berdin-berdinak baztertzen baititu. Horrela, SQL kontsulta bat idaztea "desberdina" zehaztea nahikoa da. Salbuespen bakarra funtsezko agregatuen barruan ezberdinen erabilera da, geroago apur bat hartuko baita.

Gogoratu behar da DBMS gehienek ez dutela zure eskaera ezagutzen:

Aukeratu Ostatki.Count desberdina, Oboi desberdina. *

Oboi-tik

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

Hemen, argumentua hainbat aldiz zehaztu da edo behin zehazten da, baina bigarrena, hirugarrena edo beste zutabe hautagarri bat baino lehen. Errore bat jasoko duzu sintaxiarekin ezarritako akatsarekin.

Kontsulta estandarrekin desberdina erabiltzea

Bistakoa da taulen egituraren eta haien betegarriaren eraikuntza egokiarekin, mahai berean kokatzen diren egoerak bazter utzita kate berdinak aurkitzen direnean. Hori dela eta, "Aukeratu bereizitakoa" kontsultaren exekuzioa mahai baten hautapenarekin ia praktikoa da.

Imajinatu behar duguna zein motatako horma-papera ezagutu behar dugun, erosotasuna besterik ez dezazun, ordenatu motaren arabera:

SELECT Oboi.type

Oboi ordenaren arabera motaren arabera

Eta emaitza lortuko dugu:

mota

paper

paper

Bi geruza paper

Bi geruza paper

binilo

binilo

oihal

Ez ehundutako ehunak

Ez ehundutako ehunak

Ikusten duzun bezala, mahaiaren errenkada bikoitzak daude. Aukeratutako klausulara gehitzen bagaitu:

SELECT Oboi.type ezberdina

Oboi ordenaren arabera motaren arabera

Ondoren, emaitza lortzen dugu errepikatu gabe:

mota

paper

Bi geruza paper

binilo

oihal

Ez ehundutako ehunak

Horrela, datuek mahaietan behar bezala sartu badira, orduan eroslearen deia edo eskaera egin ondoren, ezingo ditugu horma-paperezko likidoak, beirazko espaloi eta horma-papera akrilikoa izan. Dendetan sorta normalean ez da ehundaka paper mugatzen, nahiko deseroso izango litzateke mota ez-bakarraen zerrenda bilatzeko.

Funtzio agregatuen barruan desberdinak erabiliz

SQL desberdina edozein agregatu funtzio erabil daiteke. Baina Min eta Max-ek ez du inolako baliorik izango, eta batura edo batez besteko balioa kalkulatzeko, oso gutxitan posible da errepikapenen kontua ez izatea beharrezkoa den egoera bat imajinatzea.

Demagun zenbat biltegia dagoen jakiteko, eta horretarako biltegian erroilu kopurua kalkulatzen duen eskaera bidaltzen dugu.

SELECT sum (Ostatki.count)

FROM Ostatki

Kontsultak erantzuna emango dio 143. Aldatu garenean:

SELECT sum (ostatki.count bereizgarria)

FROM Ostatki

Orduan 119 besterik ez ditugu lortzen, 3 eta 7 artikuluetan egindako horma-paperak kantitate berean daude. Hala ere, begien bistakoa da erantzuna okerra dela.

Gehienetan SQL erabiltzen da Count funtzioarekin. Horrela, zailtasunik gabe, horma-papera mota desberdinen artean aurkituko ditugu:

SELECT count (Oboi.type ezberdina)

Oboi-tik

Eta lortu emaitza 5 - paper arruntak eta bi geruza, binilo, ehuna eta ez ehundutako. Ziur asko denek iragarkia ikusi zuten bezala: "20 baino gehiago baino ez dugu beste horma-paper motak!", Eta horrek esan nahi du denda honetan ez direla dozena bat errodako pare bat, baizik eta askotariko mota modernoen horma-papera.

Interesgarria da, eskaera bakarrean, hainbat funtzio zehaztu ditzakezu, atributu ezberdinekin edo gabe. Hau da, hau da, aukera desberdinetan hainbat aldiz egon daitekeen egoera bakarra.

Noiz argumentu baten erabilera arbuiatu behar dut

SQL argumentu desberdinen erabilera bi modu baztertu behar da:

  1. Taulen artean hautatzen duzu eta balioak bereiztea gomendatzen da. Kasu honetan, argumentua erabiltzea ez da beharrezkoa, zerbitzari edo bezeroaren karga gehigarria delako (DBMS motaren arabera).
  2. Derrigorrezko datuak galtzen beldur zara. Esaguzu azaldu.

Demagun buruari zuk nahi duzun horma-paperen zerrenda bistaratzeko eskatzen duela, bi zutabe soilik: mota eta kolorea. Ohituraz, argumentua bereizten duzu:

SELECT Oboi.type ezberdina, Oboi.color

Oboi-tik

ORDENA Oboi.type arabera

Eta - datuak galduko dituzu:

mota

color

paper

multicolor

Bi geruza paper

beige

binilo

marroiak

binilo

Orange

oihal

arrosa

Ez ehundutako ehunak

beige

Ez ehundutako ehunak

Zuri-

Paperezko papera (ohiko eta bi geruza) mota bat baino ez dugu agertzen, nahiz eta gure mahai txiki batzuetan bi artikulu ere badira (emaitza ez bereizita):

mota

color

paper

multicolor

paper

multicolor

Bi geruza paper

beige

Bi geruza paper

beige

binilo

marroiak

binilo

Orange

oihal

arrosa

Ez ehundutako ehunak

Zuri-

Ez ehundutako ehunak

beige

Hori dela eta, edozein kontsultak egiten duen moduan, argumentu ezberdin batekin kontuz ibili eta behar bezala konpondu beharra dago aplikazioarekin, zereginaren arabera.

Alternatiba desberdina

Argumentu ezberdinaren kontrakoa Argumentu guztia da. Erabili duzunean, lerro bikoitzak gordetzen dira. Baina lehenespenez, DBMSk uste du balio guztiak inprimatzea beharrezkoa dela, Argumentu guztia argumentu funtzional erreal bat baino zehaztapen bat baino gehiago dela. Ulertzen al duzu orain (SQL) desberdina denean? Deskribapena argumentu hau aplikatuz hainbat arazo konpontzeko konponbideari buruzko informazio osoa eman dizu. Azkenean, aktibatuta zegoela, nahiz eta aplikazio horretan argumentu sinple bat, datu batzuk galtzeak probabilitate handia eta informazio zehatza inferitu dezakeen ezkutatzen du.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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