МиСКЛ МариаДБ

МиСКЛ подупити

МиСКЛ подупити
Подупит је СКЛ упит у оквиру већег упита који је рекурзиван или се подупит сматра унутрашњим упитом. Супротно томе, спољни упит се назива упитом који укључује подупит. МиСКЛ подупит се може уградити у упите, укључујући СЕЛЕЦТ, ИНСЕРТ, УПДАТЕ или ДЕЛЕТЕ. Даље, у оквиру другог подупита, подупит се може угнездити. Фраза подупит треба да буде затворена у заградама где год се користи. Научићемо вас како и када користити МиСКЛ подупит за састављање сложених упита и описати идеју повезаног подупита. Отворите љуску командне линије са радне површине и напишите лозинку да бисте је почели користити. Притисните Ентер и наставите.

Потупит у записима једне табеле:

Направите табелу под називом „животиње“ у подацима базе података.'Додајте следећи запис различитих животиња са различитим својствима како је приказано. Дохватите овај запис помоћу упита СЕЛЕЦТ на следећи начин:

>> ОДАБЕРИ * ИЗ података.Животиње;

Пример 01:

Дохватимо ограничене записе ове табеле помоћу потупита. Користећи упит у наставку, знамо да ће се подупит прво извршити, а његов излаз ће се користити у главном упиту као улаз. Подупит једноставно узима доба у којој је цена животиње 2500. Старост животиње чија је цена 2500 је 4 у табели. Главни упит ће одабрати све записе табеле у којима је старост већа од 4 године, а излаз је дат у наставку.

>> ОДАБЕРИ * ИЗ података.животиње ВХЕРЕ Аге> (СЕЛЕЦТ Аге ФРОМ дата.животиње ГДЕ Цена = '2500');

Пример 02:

Користимо исту табелу у различитим ситуацијама. У овом примеру ћемо у подупиту користити неку функцију уместо клаузуле ВХЕРЕ. Узели смо просек свих цена за животиње. Просечна цена биће 3189. Главни упит ће одабрати све евиденције животиња чија је цена већа од 3189. Добићете доњи излаз.

>> ОДАБЕРИ * ИЗ података.животиње ГДЕ цена> (СЕЛЕЦТ АВГ (Прице) ФРОМ дата.Животиње);

Пример 03:

Користимо клаузулу ИН у главном СЕЛЕЦТ упиту. Пре свега, подупит ће постићи цене веће од 2500. Након тога, главни упит ће одабрати све записе табеле 'животиње' где цена лежи у резултату подупита.

>> ОДАБЕРИ * ИЗ података.животиње ГДЕ цена у (ИЗБОР цена из података.животиње ГДЕ цена> 2500);

Пример 04:

Подупит смо користили за проналажење имена животиње чија је цена 7000. Како је та животиња крава, зато ће се назив „крава“ вратити у главни упит. У главном упиту, сви записи ће се преузети из табеле у којој је име животиње 'крава'.'Како имамо само два записа за животињску' краву ', зато имамо доњи резултат.

>> ОДАБЕРИ * ИЗ података.животиње ВХЕРЕ Наме = (СЕЛЕЦТ Наме ФРОМ дата.животиње ГДЕ Цена = '7000');

Потупит у више записа табеле:

Претпоставите доње две табеле „ученик“ и „наставник“ у вашој бази података. Покушајмо са неколико примера потупита користећи ове две табеле.

>> ОДАБЕРИ * ИЗ података.ученик;
>> ОДАБЕРИ * ИЗ података.наставник;

Пример 01:

Преузећемо податке из једне табеле помоћу потупита и користићемо их као улаз за главни упит. То значи да се ове две табеле могу на неки начин повезати. У примеру испод, користили смо подупит да бисмо преузели име ученика из табеле „студент“ где је име наставника „Самина.„Овај упит ће вратити„ Самину “у наставника главне табеле упита.'Главни упит ће затим одабрати све записе који се односе на име наставника' Самина.'Како имамо два записа за ово име, тако смо и добили овај резултат.

>> ОДАБЕРИ * ИЗ података.наставник ВХЕРЕ ТеацхНаме = (СЕЛЕЦТ ТеацхНаме ИЗ података.студент ВХЕРЕ ТеацхНаме = 'Самина');

Пример 02:

Да бисте разрадили подупит у случају различитих табела, испробајте овај пример. Имамо подупит који преузима име наставника од ученика стола. Име би требало да има „и“ на било којој позицији у својој вредности. То значи да ће сва имена у колони ТеацхНаме која имају вредност „и“ бити изабрана и враћена у главни упит. Главни упит ће одабрати све записе из табеле „учитељ“ где је име наставника у излазу који враћа подупит. Како је подупит вратио 4 имена наставника, зато ћемо имати евиденцију свих ових имена која бораве у табели „учитељ“.'

>> ОДАБЕРИ * ИЗ података.наставник ГДЕ ТеацхНаме ИН (СЕЛЕЦТ ТеацхНаме ИЗ података.студент ГДЕ име наставника КАО „% и% ');

Пример 03:

Размотрите доње две табеле, 'ордер' и 'ордер1'.

>> ОДАБЕРИ * ИЗ података.ред;
>> ОДАБЕРИ * ИЗ података.ордер1;

Покушајмо са АНИ клаузулом у овом примеру да разрадимо потупит. Подупит ће одабрати „ид“ из табеле „ордер1“, где колона „Статус“ има вредност „Неплаћено.„ИД“ може бити више од 1. То значи да би се више од 1 вредности вратило главном упиту да би се добили резултати табеле 'редослед'. У овом случају може се користити било који „ид“. Добили смо доњи излаз за овај упит.

>> ОДАБЕРИТЕ ставку, продају, ид ИЗ података.наруџба ВХЕРЕ ид = БИЛО КОЈА (ИЗАБЕРИ ид из података.ордер1 ВХЕРЕ Статус = 'Неплаћено');

Пример 04:

Претпоставимо да имате податке у наставку у табели 'ордер1' пре него што примените било који упит.

>> ОДАБЕРИ * ИЗ података.ордер1;

Применимо упит унутар упита да избришемо неке записе из табеле 'ордер1'. Прво, подупит ће одабрати вредност „Статус“ из табеле „редослед“ где је ставка „Књига“.'Подупит враћа вредност „Плаћено“ као вредност. Сада ће главни упит избрисати редове из табеле „ордер1“ где је вредност колоне „Статус“ „Плаћено“.'

>> ОБРИШИ ИЗ података.ордер1 ВХЕРЕ Статус = (СЕЛЕЦТ Статус ФРОМ дата.поруџбина ВХЕРЕ Ставка = 'Књига');

Након провере, сада имамо доленаведене записе који су остали у табели 'ордер1' након извршења упита.

>> ОДАБЕРИ * ИЗ података.ордер1;

Закључак:

У свим наведеним примерима ефикасно сте радили са пуно подупита. Надамо се да је сада све јасно и чисто.

Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...
Корисни алати за Линук играче
Ако волите да играте игре на Линуку, велика је вероватноћа да сте можда користили апликације и услужне програме попут Вине, Лутрис и ОБС Студио за поб...
ХД Ремастеред игре за Линук које никада раније нису имале Линук издање
Многи програмери и издавачи игара долазе са ХД ремастером старих игара како би продужили живот франшизе, молимо обожаваоце да захтевају компатибилност...