TölvurSkráargerðir

SQL greinilegur: lýsing, dæmi, eiginleikar

Oft þegar þú notar SQL til að sækja gögn frá borðum, sem notandinn fær að óþarfi gögn er tilvist algerlega eins afrit raðir. Til að koma í veg fyrir þetta ástand, nota SQL sérstakt rök í setningunni Veldu. Þessi grein mun fjalla dæmi um notkun þessa röksemdafærslu, auk aðstæður þar sem umsóknin ætti að vera yfirgefin af rifrildi.

Áður en við getum haldið áfram að fjalla um tiltekin dæmi, búa til gagnagrunn sem þarf nokkra borðum.

undirbúningur borð

Ímyndaðu þér að við höfum gagnasafn geymir upplýsingar um veggfóður fram í tveimur töflum. Þessi tafla oboi (veggfóður) með auðkennareitum (einkvæmt kennimerki), af gerðinni (tegund veggfóður -. Pappír, vinyl, osfrv), lit (lit), a struct (uppbygging) og verð (price). Og borð Ostatki (leifar) með id_oboi sviðum (tilvísun í sérstakt kennimerki í töflunni oboi) og fjölda (fjöldi rúlla á lager).

Fylla gögn borð. Í töflunni bæta veggfóðri 9 færslur:

Oboi

id

tegund

litur

struct

verð

1

pappír

multicolor

upphleyptan

56,9

2

pappír tvöfaldur-lagskipt

beige

slétt

114,8

3

Vinyl

Orange

upphleyptan

504

4

Flís

beige

upphleyptan

1020,9

5

pappír tvöfaldur-lagskipt

beige

slétt

150,6

6

pappír

multicolor

slétt

95,4

7

Vinyl

Brown

slétt

372

8

Flís

hvítur

upphleyptan

980,1

9

klút

bleikur

slétt

1166,5

Taflan með leifar - og níu færslur:

Ostatki

id_oboi

telja

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Við halda áfram að lýsingu á greinilegur röð í SQL.

Setja greinilegur í Select ákvæði

greinilegur rök ættu að vera sett strax eftir Select leitarorð í fyrirspurnir. Hann beita öllum dálkum sem tilgreindar eru í setningu Select, því það verður að vera útilokaðir frá endanlegri fyrirspurn vegna er algerlega eins strengi. Svona, þegar er nóg að tilgreina þegar þú skrifar SQL «valið sérstakt» beiðninni. Undantekningin er að nota mismunandi inni samanlögðum aðgerðir sem líta á smá seinna.

Það ætti að hafa í huga að flest gagnagrunninum og þekkir ekki tegund af beiðni:

SELECT greinilegur Ostatki.Count, greinilegur oboi. *

fRÁ Oboi

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

Það var ekki talið rök nokkrum sinnum eða einu sinni fram, en áður en annað, þriðja eða öðru valinn dálki. Þú vilja fá villu vísa villu í setningafræði.

Umsókn mismunandi fyrirspurnir í Standard

Það er augljóst að með réttri uppbyggingu uppbyggingu borðum og fylla þau í einu borði útiloka ástandið þegar það eru alveg sömu strengi. Því fyrirspurn framkvæmd «Veldu greinilegur *» með úrtaki eitt borð er óhagkvæm.

Íhuga aðstæður þegar við þurfum að vita hvaða tegund sem við höfum veggfóður, bara fyrir þægindi, til að raða eftir tegund:

SELECT Oboi.type

FRÁ oboi röð eftir tegund

Og fá niðurstöður:

tegund

pappír

pappír

pappír tvöfaldur-lagskipt

pappír tvöfaldur-lagskipt

Vinyl

Vinyl

klút

Flís

Flís

Eins og sést í töflunni eru afrit raðir. Ef við bætum við tillögu Velja greinilegur:

SELECT greinilegur Oboi.type

FRÁ oboi röð eftir tegund

við fáum niðurstöðu án endurtekninga:

tegund

pappír

pappír tvöfaldur-lagskipt

Vinyl

klút

Flís

Svona, ef rétt slá inn gögn í töflu, þá strax eftir símtali eða beiðni kaupenda við getum svarað því að fljótandi veggfóður, trefjaplasti og akríl veggfóður í boði í versluninni eru það ekki. Í ljósi þess að ýmsum verslunum er yfirleitt ekki takmörkuð við eitt hundrað veggfóður, skoða lista yfir utan einstaka tegundum væri alveg vinnu-ákafur.

Umsókn um greinilegur samanlögðum hlutverka innan

SQL greinilegur rök geta að nota með hvaða samanlagt virka. En fyrir Min og Max beitingu hennar mun ekki hafa nein áhrif, en við útreikning samtölu eða meðalgildi er sjaldan ástand þar sem enginn þyrfti að taka tillit til endurtekningar.

Segjum að við viljum athuga getu vöruhús okkar og senda þessa beiðni, reiknar heildarfjöldi vafningum á lager:

SELECT summa (Ostatki.count)

fRÁ Ostatki

Beiðni gefur svarið 143. Ef, hins vegar, munum við breyta til:

SELECT summa (aðskilin Ostatki.count)

fRÁ Ostatki

við fá heildar 119, eins og veggfóður fyrir þátt númer 3 og 7 eru til á lager í sama magni. Hins vegar er það augljóst að svarið er rangt.

Oftast notuð í SQL greinilegur virka telja. Svo getum við auðveldlega fundið út hvernig á marga einstaka gerðir af veggfóður, höfum við:

SELECT telja (aðskilin Oboi.type)

fRÁ Oboi

Og fá niðurstöðu í 5 - venjulegt pappír og tvöfaldur-lag vinyl og ekki ofinn dúkur. Víst öll séð auglýsingar eins og: "Aðeins við höfum yfir 20 mismunandi tegundir af veggfóðri," sem er ætlað að þetta búð er ekki bara par tugi rúllur og ýmsar veggfóður nútíma gerðum.

Það er athyglisvert að á sama fyrirspurn er hægt að tilgreina margar aðgerðir eins og Count eiginleiki greinilegur, og án þess. Það er eina ástandið þar greinilegur í Select'e geta verið til staðar nokkrum sinnum.

Hvenær á að yfirgefa notkun rök

Frá notkun SQL sérstaks rifrildi ætti að vera yfirgefin í einni af tveimur tilvikum:

  1. Þú framkvæma úrval af borðum og ert öruggur í einstakri gildi hvor. Í þessu tilviki, að nota rök er óviðeigandi, því það er til viðbótar álag á miðlara eða biðlara (fer eftir gerð Gagnasafnskerfið).
  2. Ert þú hræddur um að missa gögnin þín. Leyfðu okkur að útskýra.

Segjum stjóri biður þig að skrá veggfóður sem þú hefur, með upplýsingum um aðeins tvö dálkum - tegund og lit.. Út af vana, gefa þér rifrildi greinilegur:

SELECT greinilegur Oboi.type, Oboi.color

fRÁ Oboi

ORDER BY Oboi.type

Og - missa nokkur gögn:

tegund

litur

pappír

multicolor

pappír tvöfaldur-lagskipt

beige

Vinyl

Brown

Vinyl

Orange

klút

bleikur

Flís

beige

Flís

hvítur

Það kann að gefa til kynna að pappír veggfóður (hefðbundin og tvískiptur-lag) Við höfum aðeins einn hugur, í raun, jafnvel í litlu borði okkar tveggja greinar (leitt án greinilegur):

tegund

litur

pappír

multicolor

pappír

multicolor

pappír tvöfaldur-lagskipt

beige

pappír tvöfaldur-lagskipt

beige

Vinyl

Brown

Vinyl

Orange

klút

bleikur

Flís

hvítur

Flís

beige

Því, eins og í að skrifa hvaða beiðni með rök greinilegur þarft að vera varkár og hæfir til að taka ákvörðun um beitingu hennar, eftir verkefni.

val greinilegur

Í bága við rök sérstaks - All rifrildi. Í umsókn sinni afrit raðir eru geymdar. En eins og sjálfgefið gagnagrunn og telur að það sé nauðsynlegt til að sýna öll þau gildi, rök öllu - það er frekar undankeppni en raunverulegur virka rök. Við vonum að þú skiljir nú að greinilegur (SQL) er notaður. Lýsing gefa þér allar upplýsingar um hagkvæmni þess að nota þetta rifrildi á að leysa mismunandi vandamál. Eftir allt saman, eins og það rennismiður út, jafnvel svo einfalt rök í umsókn sinni felur mjög áþreifanlega möguleika á að tapa einhverjum gögnum og birta rangar upplýsingar.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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