KomputilojDosiertipoj

SQLa klara: priskribon, ekzemploj, ecoj

Ofte kiam vi uzas SQL por elsxuti datumoj de la tabloj, la uzanto ricevas la redunda datumoj estas la ekzisto de absolute identa duplikatajn vicoj. Por eviti ĉi situacio, uzi SQL klara argumento en la frazo Elekti. Ĉi tiu artikolo diskutos ekzemploj de la uzo de ĉi tiu argumento, kaj ankaŭ situacioj en kiuj la apliko devus esti forlasita de la argumento.

Antaŭ ni procedas konsideri la specifajn ekzemplojn, krei la datumbazo postulas kelkaj tabloj.

preparado tablo

Imagu, ke ni havas datumbazon vendejoj informoj pri la papertapeta prezentita en du tabloj. Tiu tablo oboi (wallpaper) kun identigilo kampoj (unika identigilo), de la tipo (tipo de papertapetaj -. Papero, vinilo, ktp), koloro (koloro), struct (strukturo) kaj la prezo (prezo). Kaj tablo Ostatki (restaĵoj) kun id_oboi kampoj (referenco al la unika identigilo en la tablo Oboi) kaj grafo (la nombro da ruloj en stoko).

Plenigu la datumoj tablo. En la tablo aldoni la papertapeta 9 rekordoj:

Oboi

id

tipo

koloro

struct

prezo

1

papero

multkolora

reliefa

56.9

2

papero duobla-manteloj

beige

glataj

114,8

3

vinilo

oranĝa

reliefa

504

4

Fleece

beige

reliefa

1020,9

5

papero duobla-manteloj

beige

glataj

150,6

6

papero

multkolora

glataj

95,4

7

vinilo

brunaj

glataj

372

8

Fleece

blanka

reliefa

980,1

9

tuko

rozkoloraj

glataj

1166,5

La tablo kun la restaĵoj - kaj naŭ diskojn:

Ostatki

id_oboi

kalkuli

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

Ni iru al la priskribo de la klara celo en SQL.

Plaĉas klara en la Elekti klaŭzo

klara argumento devus esti metita tuj post la Fajna ŝlosilvorto en la mendoj. Li aplikis al ĉiuj kolumnoj specifita en la frazo Elektu, ĉar ĝi estos ekskluditaj de la fina serĉvorto rezulto estas absolute identa kordoj. Tiel, fojo sufiĉas specifi kiam skribi SQL «elekti klara» peton. La escepto estas la uzo de malsamaj ene aldonita funkciojn kiuj rigardas iom poste.

Oni devas memori, ke la plej multaj el la datumbazo kaj ne rekonas vian tipon de peto:

SELECT klara Ostatki.Count, klara Oboi. *

EL oboi

INNER JOIN Ostatki SUR Oboi.id = Ostatki.id_oboi

Tie ne estis konsiderita argumento plurfoje aŭ iam specifita, sed antaŭ la dua, tria aŭ alian elektitan kolumno. Vi ricevos eraro temas pri eraro en sintakso.

Apliko klara konsultojn en normo

Estas preterlasas ke kun taŭga konstruaĵo strukturo tabloj kaj plenigas ilin en sola tabelo ekskluditaj la situacio kiam estas absolute identa kordoj. Sekve, la pridemando ekzekuto «Elektu klara *» kun specimeno de unu tablo estas nepraktika.

Konsideru situacio kiam ni bezonas scii kion tipo ni havas wallpaper, simple por oportuneco, por ordigi laŭ speco:

ELEKTU Oboi.type

EL Oboi ordon laŭ speco

Kaj akiri la rezultojn:

tipo

papero

papero

papero duobla-manteloj

papero duobla-manteloj

vinilo

vinilo

tuko

Fleece

Fleece

Kiel vidita en la tabelo estas duplikato vicoj. Se ni aldonas la propono Elektu klara:

SELECT klara Oboi.type

EL Oboi ordon laŭ speco

ni atingos la rezulton sen ripetado:

tipo

papero

papero duobla-manteloj

vinilo

tuko

Fleece

Tiel, se konvene eniri datumojn en tabulo, tiam tuj post telefona voko aŭ peto de aĉetantoj ni povas respondi, ke la likva fonbildo, vitrofibroj kaj akrila wallpaper havebla en la vendejo ne estas. Donita ke la gamo de butikoj estas kutime ne limigita al cent fonbildo, vidi la listo de la ne-unika tipoj estus tute laborintensaj.

Apliko de malsamaj aldonita funkciojn ene

SQLa klara argumento povas uzi kun ajna entuta funkcio. Sed por la min kaj max lia apliko ne havos efikon, sed kiam kalkulanta la sumo aŭ la mezumo valoro estas malofte situacio kie neniu devus konsideri la ripetoj.

Supozi ni volas kontroli la kapablon de nia kelo kaj sendi tiun peton, komputas la totala nombro de bobenoj en stoko:

ELEKTU sumo (Ostatki.count)

EL Ostatki

Peto donos la respondon 143. Se, aliflanke, ni ŝanĝos al:

ELEKTU sumo (klara Ostatki.count)

EL Ostatki

ni ricevi la totala 119, kiel wallpaper por parto numerojn 3 kaj 7 estas en stoko en la sama kvanto. Tamen, estas evidente, ke la respondo estas erara.

Plej ofte uzita en SQL klara funkcio Grafo. Do, ni povas facile eltrovi kiom da unika tipoj de papertapetaj, ni havas:

ELEKTU grafo (klara Oboi.type)

EL oboi

Kaj akiri la rezulton de 5 - ordinara papero kaj duobla-tavolo vinilo kaj ne-woven ŝtofo. Certe ĉiuj vidis la reklamojn kiel: "Nur ni havas pli ol 20 malsamaj specoj de papertapetaj," per kiu celas ke tiu vendejo ne estas nur paro dekduo ruloj kaj diversaj wallpaper modernaj tipoj.

Estas interese, ke en la sama demando, vi povas specifi plurajn funkciojn kiel Grafo atribui klara, kaj sen ĝi. Tio estas la nura situacio kie malsamaj en Select'e povas ĉeesti plurfoje.

Kiam forlasi la uzon de la argumento

De la uzo de SQLa klara argumento devus esti forlasita en unu el du kazoj:

  1. Vi plenumi elekton de tabloj kaj estas konvinkita en la unika valoro de ĉiu. En ĉi tiu kazo, la uzo de la argumento estas netaŭga, ĉar ĝi estas plia ŝarĝo sur la servilo aŭ kliento (depende de la speco de DBMS).
  2. Ĉu vi timas perdi viajn datumojn. Ni klarigi.

Supozi estro petas vin printi la wallpaper, ke vi havas, kun la indiko de nur du kolumnoj - la tipo kaj koloro. El kutimo, vi donas argumenton klara:

SELECT klara Oboi.type, Oboi.color

EL oboi

ORDO BY Oboi.type

Kaj - perdi iuj datumoj:

tipo

koloro

papero

multkolora

papero duobla-manteloj

beige

vinilo

brunaj

vinilo

oranĝa

tuko

rozkoloraj

Fleece

beige

Fleece

blanka

Ĝi povas doni la impreson ke la papero fonbildo (convencional kaj duobla tavolo) ni nur unu menso, fakte, eĉ en nia malgranda tablo el du artikolo (rezulti sen klara):

tipo

koloro

papero

multkolora

papero

multkolora

papero duobla-manteloj

beige

papero duobla-manteloj

beige

vinilo

brunaj

vinilo

oranĝa

tuko

rozkoloraj

Fleece

blanka

Fleece

beige

Sekve, kiel en skribi ajnan peton kun la argumento aparta bezono zorgi kaj kompetentaj decidi pri ĝia apliko, depende de la tasko.

alternativa klara

Kontraŭe al la argumento klara - Ĉiuj argumento. En lia apliko duplikatajn vicoj estas stokitaj. Sed kiel la defaŭlta datumbazo kaj trovas ke necesas montri ĉiujn valorojn, la argumento Ĉiuj - estas pli ĝuste kvalifikiĝinto ol la reala funkcio argumento. Ni esperas ke vi nun komprenas ke klara (SQL) estas uzata. Priskribo al vi plenan informon pri la realigebleco uzas tiun argumenton por solvi malsamajn problemojn. Ja kiel ĝi rezultis, eĉ tia simpla argumento en lia apliko kaŝas tre palpebla eblo de perdi iuj datumoj kaj montri malpreciza informoj.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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