Komputiloj, Dosiertipoj
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:
- 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).
- Ĉ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.
Similar articles
Trending Now