Компјутери, Типови фајлова
СКЛ разликују: опис, примери, пропертиес
Често када користите СКЛ преузели податке из табеле, корисник добија вишка података је постојање апсолутно идентична дупле редове. Да бисте избегли ове ситуације, користите СКЛ посебну аргумент у реченици Селецт. Овај чланак ће размотрити примере употребе овог аргумента, као и ситуације у којима је примена треба да буде напуштена од аргумента.
Пре него што се размотрити конкретне примере, створити базу података потребно неколико столова.
priprema табела
Замислите да имамо складишти базе података информације о позадину који је представљен у две табеле. Ова табела 'обои (тапет) са ид пољима (јединствени идентификатор), типа (врсте тапета -. Папир, винил, итд), боја (боје), струцт (структура) и цена (цена). И сто Остатки (остаци) са ид_обои области (мисли се на јединствени идентификатор у табели обои) и тачка (број ваљака у продаји).
Попуните табелу података. У табели додати позадину 9 рецордс:
обои | ||||
ИД | тип | боја | Струцт | цена |
1 | папир | шарен | рељефни | 56.9 |
2 | папер доубле-лаиеред | беж | гладак | 114.8 |
3 | винил | поморанџа | рељефни | 504 |
4 | руно | беж | рељефни | 1020.9 |
5 | папер доубле-лаиеред | беж | гладак | 150.6 |
6 | папир | шарен | гладак | 95.4 |
7 | винил | браон | гладак | 372 |
8 | руно | бео | рељефни | 980,1 |
9 | тканина | розе | гладак | 1166,5 |
Табела са остацима - и девет евиденције:
остатки | |
ид_обои | рачунати |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Настављамо са описом посебног реда у СКЛ.
Поставите различита у Селецт клаузуле
посебна расправа треба поставити одмах након Изаберите кључне речи у упита. Он је примењен на све колоне које су наведене у реченици Селецт, јер ће бити искључени из коначног резултата упита је апсолутно идентичне жице. Стога, кад је довољно да прецизира када писања СКЛ «изабрали различит» захтев. Изузетак је употреба различитих унутар агрегата функција које гледају мало касније.
Не треба заборавити да је највећи део базе података и не препознаје врсту захтјева:
СЕЛЕЦТ дистинцт Остатки.Цоунт, посебан Обои. * ОД обои ИННЕР ЈОИН остатки НА Обои.ид = Остатки.ид_обои |
Тамо није сматран аргумент више пута или једном прецизирано, али пре другом, трећем или другог изабране колоне. Добићете грешку која се односи на грешке у синтакси.
Апплицатион различите куериес ин стандард
Очигледно је да са одговарајућим структуре табеле изградњу и попуњавање у оквиру једне табеле искључене ситуацију када постоје апсолутно идентични низови. Стога, извршење упит «СЕЛЕЦТ *» на узорку од једног стола је непрактично.
Размотрити ситуацију када морамо да знамо какву врсту имамо позадину, само због погодности, сортирање по типу:
ИЗАБЕРИ Обои.типе ОД обои би по типу |
И стигну резултати:
тип |
папир |
папир |
папер доубле-лаиеред |
папер доубле-лаиеред |
винил |
винил |
тканина |
руно |
руно |
Као што се види у табели постоје дупликати редови. Ако томе додамо и предлог Селецт разликују:
СЕЛЕЦТ дистинцт Обои.типе ОД обои би по типу |
добијамо резултат без понављања:
тип |
папир |
папер доубле-лаиеред |
винил |
тканина |
руно |
Према томе, ако правилно унесете податке у табели, онда одмах после телефонског позива или захтева купаца, можемо одговорити да су течна тапета, фиберглас и акрил тапета доступне у продавници нису. С обзиром да је спектар радњи обично није ограничен на стотину позадину, видите листу не-јединствених врста ће бити прилично напорна.
Примена посебних збирних функција унутар
СКЛ дистинцт аргумент се може користити са било којим агрегатне функцијом. Али за Мин и Мак његове примене неће имати ефекта, али при израчунавању суме или просечну вредност је ретко ситуација у којој нико не би морао узети у обзир понављања.
Претпоставимо да желите да проверите капацитет нашег складишта и да пошаљете захтев, израчунава укупан број намотаја на лагеру:
СЕЛЕЦТ сум (Остатки.цоунт) ОД остатки |
Захтев ће дати одговор 143. Ако, међутим, да ће се променити у:
СЕЛЕЦТ сум (дистинцт Остатки.цоунт) ОД остатки |
добијамо укупну 119, као позадину за део бројева 3 и 7 су у складишту у истом износу. Међутим, очигледно је да је одговор погрешан.
Најчешће се користи у СКЛ различита функција тачке. Дакле, можемо лако сазнати како многе јединствене врсте позадину, ми немамо:
Селецт цоунт (разликује Обои.типе) ОД обои |
И добити резултат 5 - обичан папир и доубле-лаиер винил и не тканине. Сигурно сви видели рекламе као што су: "Само имамо преко 20 различитих врста тапета," што подразумева да је ова радња није само пар десетина пецива и разних тапете модерних типова.
Занимљиво је да у исти упит, можете навести више функција као Точка приписују различити, и без њега. То је једина ситуација у којој разликују у Селецт'е могу бити присутни неколико пута.
Када се одустане од употребе аргумента
Од употребе СКЛ посебног аргумента би требало да буде напуштена у једном од два случаја:
- Извршите избор столова и уверени у јединственом вредношћу сваког. У том случају, употреба аргумента је непримерено, јер је то додатно оптерећење на серверу или клијента (у зависности од врсте ДБМС).
- Плашите ли се изгубити своје податке. Хајде да објаснимо.
Претпоставимо да газда тражи да листу позадину коју су, уз назнаку само два колона - тип и боју. Из навике, ви дати аргумент посебну:
СЕЛЕЦТ дистинцт Обои.типе, Обои.цолор ОД обои НАЛОГ ПО Обои.типе |
И - изгубити неке податке:
тип | боја |
папир | шарен |
папер доубле-лаиеред | беж |
винил | браон |
винил | поморанџа |
тканина | розе |
руно | беж |
руно | бео |
То може дати утисак да је папир тапета (конвенционална и двослојни) смо само један ум, у ствари, чак иу нашој малој табели два члана (резултирати без разликују):
тип | боја |
папир | шарен |
папир | шарен |
папер доубле-лаиеред | беж |
папер доубле-лаиеред | беж |
винил | браон |
винил | поморанџа |
тканина | розе |
руно | бео |
руно | беж |
Стога, као што је у писаној форми било који захтев са изразитим потребе аргумент да буду пажљиви и надлежан да одлучује о његовој примени, у зависности од задатка.
алтернативе дистинцт
За разлику од аргумент посебног - Алл аргумент. У својој апликацији дупликати редови се чувају. Али као подразумевани базу података и сматра да је потребно да бисте приказали све вредности, аргумент све - већ је квалификације од стварног аргумента функције.
Similar articles
Trending Now