KompyutaAina ya faili

SQL tofauti: maelezo, mifano, mali

Mara nyingi wakati matumizi ya SQL ili kuokoa data kutoka meza, mtumiaji anapata data redundant ni kuwepo kwa safu kabisa kufanana zinazofanana. Ili kuepuka hali hii, kutumia SQL tofauti hoja katika hukumu Chagua. Makala hii itakuwa kujadili mifano ya matumizi ya hoja hii, pamoja na hali ambayo maombi lazima kutelekezwa na hoja.

Kabla ya kuendelea kufikiria mifano maalum, kujenga database required michache meza.

maandalizi meza

Fikiria kwamba tuna maduka database taarifa kuhusu Picha iliyotolewa katika meza mbili. Hii oboi meza (Ukuta) na nyanja id (kipekee kitambulisho), aina (aina ya mandhari -. Paper, vinyl, nk), rangi (rangi), struct (muundo) na bei (bei). Na meza Ostatki (mabaki) na nyanja id_oboi (akiwa na kitambulisho cha kipekee katika meza oboi) na kuhesabu (idadi ya mistari katika hisa).

Jaza jedwali la data. Katika jedwali kuongeza Picha rekodi 9:

oboi

id

aina

rangi

struct

bei

1

karatasi

multicolor

embossed

56.9

2

karatasi mbili-layered

beige

laini

114.8

3

vinyl

Orange

embossed

504

4

Ngozi

beige

embossed

1,020.9

5

karatasi mbili-layered

beige

laini

150.6

6

karatasi

multicolor

laini

95.4

7

vinyl

kahawia

laini

372

8

Ngozi

nyeupe

embossed

980.1

9

nguo

pink

laini

1,166.5

meza na mabaki - na rekodi tisa:

Ostatki

id_oboi

kuhesabu

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Sisi kuendelea na maelezo ya utaratibu tofauti katika SQL.

Nafasi tofauti katika Select kifungu

Hoja tofauti kuwekwa mara baada ya Chagua keyword katika maswali. Yeye kutumika kwa safu wima zote maalum katika hukumu Chagua, kwa sababu ni kuwa mbali na matokeo ya mwisho ya swala ni masharti kabisa kufanana. Hivyo, mara moja inatosha kutaja wakati wa kuandika SQL «kuchagua tofauti» ombi. isipokuwa ni matumizi ya kazi tofauti ndani ya jumla ya mabao ambayo kuangalia baadaye.

Ikumbukwe kuwa wengi wa database na haitambui aina yako ya ombi:

CHAGUA Ostatki.Count tofauti, tofauti oboi. *

FROM oboi

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

Kuna hakuwa kuchukuliwa hoja mara kadhaa au mara moja maalum, lakini kabla ya pili, tatu au safu nyingine kuchaguliwa. Wewe kupata kosa akimaanisha kosa katika syntax.

Maombi tofauti maswali katika kiwango

Ni dhahiri kuwa kwa ujenzi wa meza sahihi muundo na kujaza yao ndani ya meza moja kutengwa hali wakati kuna masharti kabisa kufanana. Kwa hiyo, utekelezaji swala «Kuchagua tofauti *» na sampuli ya meza moja ni isiyowezekana.

Fikiria hali ya wakati tunahitaji kujua ni aina gani tuna mandhari, tu kwa ajili ya urahisi, kwa aina kwa aina:

SELECT Oboi.type

FROM oboi ili na aina

Na kupata matokeo:

aina

karatasi

karatasi

karatasi mbili-layered

karatasi mbili-layered

vinyl

vinyl

nguo

Ngozi

Ngozi

Kama inavyoonekana katika jedwali kuna duplicate mistari. Kama sisi kuongeza pendekezo Kuchagua tofauti:

CHAGUA Oboi.type tofauti

FROM oboi ili na aina

sisi kupata matokeo bila marudio:

aina

karatasi

karatasi mbili-layered

vinyl

nguo

Ngozi

Hivyo, kama vizuri kuingia data katika meza, kisha mara baada ya kupiga simu au ombi ya wanunuzi tunaweza kujibu kwamba Ukuta kioevu, mashine na akriliki Ukuta inapatikana katika kuhifadhi sio. Kutokana na kwamba aina mbalimbali ya maduka ni kawaida si mdogo kwa Picha mia moja, kuangalia orodha ya aina zisizo kipekee itakuwa kabisa nguvu kazi kubwa.

Maombi ya kazi tofauti kwa jumla ya mabao ndani ya

SQL hoja tofauti inaweza kutumika kwa kazi yoyote kwa jumla. Lakini kwa Min na Max matumizi yake haitakuwa na athari, lakini wakati wa kuhesabu kiasi au thamani ya wastani ni mara chache hali ambapo hakuna mtu ingekuwa kuzingatia marudio.

Tuseme tunataka kuangalia uwezo wa ghala yetu na kutuma ombi hili, computes idadi ya coils katika hisa:

SELECT jumla (Ostatki.count)

FROM Ostatki

Ombi kutoa jibu 143. Hata hivyo, sisi kubadili kwa:

SELECT jumla (tofauti Ostatki.count)

FROM Ostatki

sisi kupata jumla 119, kama Ukuta kwa idadi sehemu 3 na 7 ni katika hisa katika kiasi sawa. Hata hivyo, ni dhahiri kuwa jibu ni sahihi.

Mara nyingi kutumika katika SQL tofauti kazi Hesabu. Kwa hiyo, tunaweza kwa urahisi kujua aina ngapi ya kipekee ya mandhari, hatuna na:

SELECT kuhesabu (tofauti Oboi.type)

FROM oboi

Na kupata matokeo ya 5 - karatasi za kawaida na mbili-safu vinyl na kitambaa yasiyo ya kusokotwa. Hakika wote kuonekana matangazo kama vile: "Ni tuna zaidi ya 20 aina tofauti za mandhari," na ambayo ni maana kwamba duka hili ni hati si michache tu kadhaa na aina ya Picha aina ya kisasa.

Inashangaza kwamba katika hoja moja, unaweza kutaja kazi nyingi kama Hesabu sifa tofauti, na bila. Hiyo ni hali ya pekee ambapo tofauti katika Select'e zinaweza kuwa mara kadhaa.

Wakati kuachana na matumizi ya hoja

Na matumizi ya SQL hoja tofauti lazima kutelekezwa katika moja ya kesi mbili:

  1. You kufanya uteuzi wa meza na ni ujasiri katika thamani ya kipekee kila mmoja. Katika hali hii, matumizi ya hoja ni muafaka, kwa sababu ni mzigo wa ziada kwenye seva au mteja (kulingana na aina ya DBMS).
  2. Je, wewe ni hofu ya kupoteza data yako. Hebu kueleza.

bosi Tuseme anauliza wewe kwa orodha Picha uliyonayo, na dalili ya nguzo mbili tu - aina na rangi. Kati ya tabia, wewe kutoa hoja tofauti:

CHAGUA Oboi.type tofauti, Oboi.color

FROM oboi

ORDER BY Oboi.type

Na - kupoteza baadhi ya data:

aina

rangi

karatasi

multicolor

karatasi mbili-layered

beige

vinyl

kahawia

vinyl

Orange

nguo

pink

Ngozi

beige

Ngozi

nyeupe

Ni inaweza kutoa hisia kwamba karatasi Picha (kawaida na dual-safu) tuna akili moja tu, kwa kweli, hata katika meza yetu kidogo cha makala mbili (matokeo bila tofauti):

aina

rangi

karatasi

multicolor

karatasi

multicolor

karatasi mbili-layered

beige

karatasi mbili-layered

beige

vinyl

kahawia

vinyl

Orange

nguo

pink

Ngozi

nyeupe

Ngozi

beige

Kwa hiyo, kama kwa maandishi ombi lolote kwa hoja tofauti haja ya kuwa makini na uwezo wa kuamua juu ya matumizi yake, kulingana na kazi.

mbadala tofauti

Kinyume na hoja tofauti - hoja zote. Katika maombi yake duplicate safu zimehifadhiwa. Lakini kama database chaguo-msingi na anaona kuwa ni muhimu kuonyesha thamani zote, hoja zote - hata hivyo ni kufuzu ya hoja halisi kazi. Ni matumaini yetu kwamba sasa kuelewa kwamba tofauti (SQL) ni kutumika. Maelezo kukupa taarifa kamili juu ya uwezekano wa kutumia hoja hii katika kutatua matatizo mbalimbali. Baada ya yote, kama aligeuka, hata kama hoja rahisi katika matumizi yake huficha dhahiri sana uwezekano wa kupoteza baadhi ya data na kuonyesha taarifa sahihi.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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