Cyfrifiaduron, Fathau o ffeiliau
SQL amlwg: disgrifiad, enghreifftiau, eiddo
Yn aml, pan fyddwch yn defnyddio SQL i adfer data o dablau, y defnyddiwr yn derbyn y data diangen yw bodolaeth rhesi dyblyg hollol union yr un fath. Er mwyn osgoi'r sefyllfa hon, defnyddiwch SQL dadl wahanol yn y frawddeg Dethol. Bydd Mae'r erthygl hon yn trafod enghreifftiau o'r defnydd y ddadl hon, yn ogystal â sefyllfaoedd lle dylai'r cais gael ei gadael gan y ddadl.
Cyn i ni symud ymlaen i ystyried yr enghreifftiau penodol, creu'r gronfa ddata sy'n ofynnol cwpl o dablau.
tabl paratoi
Dychmygwch bod gennym wybodaeth storio cronfa ddata am y papur wal mewn dau dabl. Mae'r Oboi tabl (papur wal) gyda chaeau id (dynodwr unigryw), y math (math o bapur wal -. Papur, finyl, ac ati), lliw (lliw), mae struct (strwythur) ac yn y pris (pris). A bwrdd Ostatki (gweddillion) gyda chaeau id_oboi (cyfeiriad at y dynodwr unigryw yn y tabl Oboi) a'r cyfrif (y nifer o roliau mewn stoc).
Llenwch y tabl data. Yn y tabl ychwaneger y papur wal 9 cofnodion:
Oboi | ||||
id | math | lliw | struct | pris |
1 | papur | multicolor | boglynnog | 56.9 |
2 | papur dwbl-haenog | llwydfelyn | llyfn | 114.8 |
3 | finyl | Orange | boglynnog | 504 |
4 | cnu | llwydfelyn | boglynnog | 1020.9 |
5 | papur dwbl-haenog | llwydfelyn | llyfn | 150.6 |
6 | papur | multicolor | llyfn | 95.4 |
7 | finyl | brown | llyfn | 372 |
8 | cnu | gwyn | boglynnog | 980.1 |
9 | brethyn | pinc | llyfn | 1166.5 |
Mae'r tabl gyda gweddillion - a naw cofnodion:
Ostatki | |
id_oboi | cyfrif |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Awn ymlaen at y disgrifiad o'r drefn wahanol yn SQL.
Rhowch amlwg yn y cymal Select
Dylid ddadl wahanol yn cael eu gosod yn syth ar ôl yr Dewiswch keyword yn y cwestiynau. Gwnaeth gais at yr holl golofnau a nodir yn y frawddeg Dethol, gan y bydd yn cael eu heithrio o'r canlyniad ymholiad terfynol llinynnau hollol union yr un fath. Felly, unwaith y bydd yn ddigon i nodi wrth ysgrifennu SQL «dewiswch wahanol» gais. Yr eithriad yw'r defnydd o swyddogaethau agregau tu penodol sy'n edrych ar ychydig yn ddiweddarach.
Dylid cofio bod y rhan fwyaf o'r gronfa ddata ac nid yw'n cydnabod eich math o gais:
DEWISWCH Ostatki.Count gwahanol, Oboi gwahanol. * O Oboi INNER YMUNWCH Ostatki AR Oboi.id = Ostatki.id_oboi |
Nid ystyriwyd ddadl sawl gwaith neu unwaith a nodwyd, ond cyn yr ail, trydydd neu golofn a ddewiswyd arall. Byddwch yn cael gwall cyfeirio at gamgymeriad yn cystrawen.
Cais ymholiadau amlwg yn safon
Mae'n amlwg bod ag adeiladu tablau strwythur priodol ac yn eu llenwi o fewn tabl sengl a waharddwyd y sefyllfa pan mae llinynnau hollol union yr un fath. Felly, y gweithredu ymholiad «Dewiswch wahanol *» gyda sampl o un tabl yn anymarferol.
Ystyriwch sefyllfa pan mae angen i ni wybod pa fath gennym papur wal, dim ond er hwylustod, i ddidoli yn ôl math:
SELECT Oboi.type O orchymyn Oboi yn ôl math |
Ac yn cael y canlyniadau:
math |
papur |
papur |
papur dwbl-haenog |
papur dwbl-haenog |
finyl |
finyl |
brethyn |
cnu |
cnu |
Fel y gwelir yn y tabl, mae rhesi dyblyg. Os byddwn yn ychwanegu y cynnig Dewiswch gwahanol:
DEWISWCH Oboi.type wahanol O orchymyn Oboi yn ôl math |
rydym yn cael y canlyniad heb ailadrodd:
math |
papur |
papur dwbl-haenog |
finyl |
brethyn |
cnu |
Felly, os bwydo data mewn tabl yn iawn, yna yn syth ar ôl galwad ffôn neu gais y prynwyr yr ydym yn gallu ateb nad oedd y papur wal hylif, gwydr ffibr a papur wal acrylig ar gael yn y siop yn cael eu. O ystyried bod yr ystod o siopau fel arfer nid yn gyfyngedig i gant o papur wal, edrych ar y rhestr o'r mathau nad ydynt yn unigryw a fyddai'n fod yn eithaf llafurddwys.
Cymhwyso swyddogaethau agregau penodol o fewn
Gall dadl wahanol SQL yn cael ei ddefnyddio gydag unrhyw swyddogaeth agregau. Ond ar gyfer y Min a Max ei gais yn cael unrhyw effaith, ond wrth gyfrifo swm neu werth cyfartalog Anaml sefyllfa lle byddai'n rhaid neb i gymryd i ystyriaeth y ailadroddion.
Tybiwch ein bod yn awyddus i wirio gallu ein warws ac i anfon y cais hwn, computes cyfanswm nifer y coiliau mewn stoc:
swm SELECT (Ostatki.count) O Ostatki |
Bydd Cais rhoi'r ateb 143. Os, fodd bynnag, byddwn yn newid i:
swm SELECT (Ostatki.count wahanol) O Ostatki |
rydym yn cael cyfanswm y 119, fel papur wal ar gyfer rhifau rhan 3 a 7 mewn stoc yn yr un swm. Fodd bynnag, mae'n amlwg bod yr ateb yn anghywir.
a ddefnyddir yn fwyaf aml mewn SQL Cyfrif swyddogaeth wahanol. Felly, gallwn yn hawdd gael gwybod sut llawer o fathau unigryw o bapur wal, oes gennym:
cyfrif SELECT (Oboi.type wahanol) O Oboi |
Ac yn cael y canlyniad 5 - papur cyffredin a finyl dwbl-haen a ffabrig nad ydynt yn gwehyddu. Siawns gyd wedi gweld yr hysbysebion megis: "Dim ond mae gennym dros 20 o wahanol fathau o bapur wal," erbyn pryd y mae'n golygu bod y siop hon yn nid dim ond dwsin o gwpl rholiau ac amrywiaeth o bapur wal fathau modern.
Mae'n ddiddorol bod yn yr un ymholiad, gallwch nodi swyddogaethau lluosog fel Cyfrif priodoli gwahanol, ac hebddo. Dyna'r unig sefyllfa lle y gall amlwg yn Select'e yn bresennol sawl gwaith.
Pryd i roi'r gorau i'r defnydd o'r ddadl
O ddefnyddio SQL dadl wahanol Dylid gadael yn un o ddau achos:
- Rydych yn perfformio detholiad o dablau ac yn hyderus yn y gwerth unigryw yr un. Yn yr achos hwn, y defnydd o'r ddadl yn amhriodol, gan ei fod yn llwyth ychwanegol ar y gweinydd neu'r cleient (yn dibynnu ar y math o DBMS).
- A ydych yn ofni colli eich data. Gadewch i ni egluro.
bos Tybiwch yn gofyn i chi restru'r papur wal sydd gennych, gyda'r awgrym o ddim ond dau golofn - y math a lliw. Allan o arferiad, byddwch yn rhoi dadl penodol:
DEWISWCH Oboi.type penodol, Oboi.color O Oboi GORCHYMYN GAN Oboi.type |
Ac - yn colli rhywfaint o ddata:
math | lliw |
papur | multicolor |
papur dwbl-haenog | llwydfelyn |
finyl | brown |
finyl | Orange |
brethyn | pinc |
cnu | llwydfelyn |
cnu | gwyn |
Efallai y bydd yn rhoi'r argraff bod y papur wal papur (confensiynol ac deuol-haen), rydym wedi dim ond un meddwl, mewn gwirionedd, hyd yn oed yn ein bwrdd bach o ddau erthygl (yn arwain heb wahanol):
math | lliw |
papur | multicolor |
papur | multicolor |
papur dwbl-haenog | llwydfelyn |
papur dwbl-haenog | llwydfelyn |
finyl | brown |
finyl | Orange |
brethyn | pinc |
cnu | gwyn |
cnu | llwydfelyn |
Felly, fel y yn ysgrifenedig unrhyw gais gyda'r angen amlwg ddadl i fod yn ofalus ac yn gymwys i benderfynu ar ei gais, yn dibynnu ar y dasg.
amgen ar wahân
Yn groes i'r ddadl wahanol - Pob ddadl. Wrth ei chymhwyso rhesi dyblyg yn cael eu storio. Ond fel y gronfa ddata rhagosodedig ac yn canfod ei bod yn angenrheidiol i arddangos yr holl werthoedd, y ddadl Gyfan - mae'n hytrach yn rhagbrofol na'r ddadl swyddogaeth ei hun.
Similar articles
Trending Now