Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
16.04.2013
Размер:
27.9 Кб
Скачать

Understanding SQL. Chapter 10. чуфбчлб пдопзп ъбртпуб чохфтш дтхзпзп ч лпоеге змбчщ 9, нщ зпчптймй юфп ъбртпущ НПЗХФ ХРТБЧМСФШ ДТХЗЙНЙ ЪБРТПУБНЙ. ч ЬФПК ЗМБЧЕ, ЧЩ ХЪОБЕФЕ ЛБЛ ЬФП ДЕМБЕФУС ( ВПМШЫЕК ЮБУФША ), РПНЕЭБС ЪБРТПУ ЧОХФТШ РТЕДЙЛБФБ ДТХЗПЗП ЪБРТПУБ, Й ЙУРПМШЪХС ЧЩЧПД ЧОХФТЕООЕЗП ЪБРТПУБ Ч ЧЕТОПН ЙМЙ ОЕЧЕТОПН ХУМПЧЙЙ РТЕДЙЛБФБ. чЩ УНПЦЕФЕ ЧЩСУОЙФШ ЛБЛЙЕ ЧЙДЩ ПРЕТБФПТПЧ НПЗХФ ЙУРПМШЪПЧБФШ РПДЪБРТПУЩ Й РПУНПФТЕФШ ЛБЛ РПДЪБРТПУЩ ТБВПФБАФ УП УТЕДУФЧБНЙ SQL , ФБЛЙНЙ ЛБЛ DISTINCT, У УПУФБЧОЩНЙ ЖХОЛГЙСНЙ Й ЧЩЧПДЙНЩНЙ ЧЩТБЦЕОЙС. чЩ ХЪОБЕФЕ ЛБЛ ЙУРПМШЪПЧБФШ РПДЪБРТПУЩ У РТЕДМПЦЕОЙЕН HAVING Й РПМХЮЙФЕ ОЕЛПФПТЩЕ ОБУФБЧМЕОЙС ЛБЛ РТБЧЙМШОП ЙУРПМШЪПЧБФШ РПДЪБРТПУЩ. лбл тбвпфбеф рпдъбртпу? у РПНПЭША SQL ЧЩ НПЦЕФЕ ЧЛМБДЩЧБФШ ЪБРТПУЩ ЧОХФТШ ДТХЗБ ДТХЗБ. пВЩЮОП, ЧОХФТЕООЙК ЪБРТПУ ЗЕОЕТЙТХЕФ ЪОБЮЕОЙЕ ЛПФПТПЕ РТПЧЕТСЕФУС Ч РТЕДЙЛБФЕ ЧОЕЫОЕЗП ЪБРТПУБ, ПРТЕДЕМСАЭЕЗП ЧЕТОП ПОП ЙМЙ ОЕФ. оБРТЙНЕТ, РТЕДРПМПЦЙН ЮФП НЩ ЪОБЕН ЙН РТПДБЧГБ: Motika, ОП ОЕ ЪОБЕН ЪОБЮЕОЙЕ ЕЗП РПМ snum, Й ИПФЙН ЙЪЧМЕЮШ ЧУЕ РПТСДЛЙ ЙЪ ФБВМЙГЩ рПТСДЛПЧ. йНЕЕФУС ПДЙО УРПУПВ ЮФПВЩ УДЕМБФШ ЬФП( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 10.1 ): SELECT * FROM Orders WHERE snum = ( SELECT snum FROM Salespeople WHERE sname = 'Motika'); юФПВЩ ПГЕОЙФШ ЧОЕЫОЙК( ПУОПЧОПК ) ЪБРТПУ, SQL УОБЮБМБ ДПМЦЕО ПГЕОЙФШ ЧОХФТЕООЙК ЪБРТПУ ( ЙМЙ РПДЪБРТПУ ) ЧОХФТЙ РТЕДМПЦЕОЙС WHERE. пО ДЕМБЕФ ЬФП ФБЛ ЛБЛ Й ДПМЦЕО ДЕМБФШ ЪБРТПУ ЙНЕАЭЙК ЕДЙОУФЧЕООХА ГЕМШ - ПФЩУЛБФШ ЮЕТЕЪ ФБВМЙГХ рТПДБЧГПЧ ЧУЕ УФТПЛЙ, ЗДЕ РПМЕ sname ТБЧОП ЪОБЮЕОЙА Motika, Й ЪБФЕН ЙЪЧМЕЮШ ЪОБЮЕОЙС РПМ snum ЬФЙИ УФТПЛ. еДЙОУФЧЕООПК ОБКДЕООПК УФТПЛПК ЕУФЕУФЧЕООП ВХДЕФ snum = 1004. пДОБЛП SQL, ОЕ РТПУФП ЧЩДБЕФ ЬФП ЪОБЮЕОЙЕ, Б РПНЕЭБЕФ ЕЗП Ч РТЕДЙЛБФ ПУОПЧОПЗП ЪБРТПУБ ЧНЕУФП УБНПЗП РПДЪБРТПУБ, ФБЛ ЮФПВЩ РТЕДЙЛБФБ РТПЮЙФБМ ЮФП WHERE snum = 1004 =============== SQL Execution Log ============== | | | SELECT * | | FROM Orders | | WHERE snum = | | (SELECT snum | | FROM Salespeople | | WHERE sname = 'Motika'); | |=================================================| | onum amt odate cnum snum | | ----- ------- ---------- ----- ----- | | 3002 1900.10 10/03/1990 2007 1004 | | | ================================================= тЙУХОПЛ 10.1: йУРПМШЪПЧБОЙЕ РПДЪБРТПУБ пУОПЧОПК ЪБРТПУ ЪБФЕН ЧЩРПМОСЕФУС ЛБЛ ПВЩЮОП У ЧЩЫЕХРПНСОХФЩНЙ ТЕЪХМШФБФБНЙ. лПОЕЮОП ЦЕ, РПДЪБРТПУ ДПМЦЕО ЧЩВТБФШ ПДЙО Й ФПМШЛП ПДЙО УФПМВЕГ, Б ФЙР ДБООЩИ ЬФПЗП УФПМВГБ ДПМЦЕО УПЧРБДБФШ У ФЕН ЪОБЮЕОЙЕН У ЛПФПТЩН ПО ВХДЕФ УТБЧОЙЧБФШУС Ч РТЕДЙЛБФЕ. юБУФП, ЛБЛ РПЛБЪБОП ЧЩЫЕ, ЧЩВТБООПЕ РПМЕ Й ЕЗП ЪОБЮЕОЙЕ ВХДХФ ЙНЕФШ ПДЙОБЛПЧЩЕ ЙНЕОБ( Ч ЬФПН УМХЮБЕ, snum ), ОП ЬФП ОЕПВСЪБФЕМШОП. лПОЕЮОП, ЕУМЙ ВЩ НЩ ХЦЕ ЪОБМЙ ОПНЕТ РТПДБЧГБ Motika, НЩ НПЗМЙ ВЩ РТПУФП ОБРЕЮБФБФШ WHERE snum = 1004 Й ЧЩРПМОСФШ ДБМЕЕ У РПДЪБРТПУПН Ч ГЕМПН, ОП ЬФП ВЩМП ВЩ ОЕ ФБЛ ХОЙЧЕТУБМШОП. ьФП ВХДЕФ РТПДПМЦБФШ ТБВПФБФШ ДБЦЕ ЕУМЙ ОПНЕТ Motika ЙЪНЕОЙМУС, Б, У РПНПЭША РТПУФПЗП ЙЪНЕОЕОЙС ЙНЕОЙ Ч РПДЪБРТПУЕ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ЕЗП ДМС ЮЕЗП ХЗПДОП. ъобюеойс, лпфптще нпзхф чщдбчбфш рпдъбртпущ уЛПТЕЕ ЧУЕЗП ВЩМП ВЩ ХДПВОЕЕ, ЮФПВЩ ОБЫ РПДЪБРТПУ Ч РТЕДЩДХЭЕН РТЙНЕТЕ ЧПЪЧТБЭБМ ПДОП Й ФПМШЛП ПДОП ЪОБЮЕОЙЕ. йНЕС ЧЩВТБООЩН РПМЕ snum " WHERE city = "London" ЧНЕУФП "WHERE sname = 'Motika", НПЦОП РПМХЮЙФШ ОЕУЛПМШЛП ТБЪМЙЮОЩИ ЪОБЮЕОЙК. ьФП НПЦЕФ УДЕМБФШ ХТБЧОЕОЙЕ Ч РТЕДЙЛБФЕ ПУОПЧОПЗП ЪБРТПУБ ОЕЧПЪНПЦОЩН ДМС ПГЕОЛЙ ЧЕТОПУФЙ ЙМЙ ОЕЧЕТОПУФЙ, Й ЛПНБОДБ ЧЩДБУФ ПЫЙВЛХ. рТЙ ЙУРПМШЪПЧБОЙЙ РПДЪБРТПУПЧ Ч РТЕДЙЛБФБИ ПУОПЧБООЩИ ОБ ТЕМСГЙПООЩИ ПРЕТБФПТБИ ( ХТБЧОЕОЙСИ ЙМЙ ОЕТБЧЕОУФЧБИ, ЛБЛ ПВЯСУОЕОП Ч зМБЧЕ 4 ), ЧЩ ДПМЦОЩ ХВЕДЙФШУС ЮФП ЙУРПМШЪПЧБМЙ РПДЪБРТПУ ЛПФПТЩК ВХДЕФ ЧЩДБЧБФШ ПДОХ Й ФПМШЛП ПДОХ УФТПЛХ ЧЩЧПДБ. еУМЙ ЧЩ ЙУРПМШЪХЕФЕ РПДЪБРТПУ ЛПФПТЩК ОЕ ЧЩЧПДЙФ ОЙЛБЛЙИ ЪОБЮЕОЙК ЧППВЭЕ, ЛПНБОДБ ОЕ РПФЕТРЙФ ОЕХДБЮЙ; ОП ПУОПЧОПК ЪБРТПУ ОЕ ЧЩЧЕДЕФ ОЙЛБЛЙИ ЪОБЮЕОЙК. рПДЪБРТПУЩ ЛПФПТЩЕ ОЕ РТПЙЪЧПДСФ ОЙЛБЛПЗП ЧЩЧПДБ (ЙМЙ ОХМЕЧПК ЧЩЧПД) ЧЩОХЦДБАФ ТБУУНБФТЙЧБФШ РТЕДЙЛБФ ОЙ ЛБЛ ЧЕТОЩК ОЙ ЛБЛ ОЕЧЕТОЩК, Б ЛБЛ ОЕЙЪЧЕУФОЩК. пДОБЛП, ОЕЙЪЧЕУФОЩК РТЕДЙЛБФ ЙНЕЕФ ФПФ ЦЕ УБНЩК ЬЖЖЕЛФ ЮФП Й ОЕЧЕТОЩК: ОЙЛБЛЙЕ УФТПЛЙ ОЕ ЧЩВЙТБАФУС ПУОПЧОЩН ЪБРТПУПН ( УНПФТЙ зМБЧХ 5 ДМС РПДТПВОПК ЙОЖПТНБГЙЙ П ОЕЙЪЧЕУФОПН РТЕДЙЛБФЕ ). ьФП РМПИБ УФТБФЕЗЙ, ЮФПВЩ ДЕМБФШ ЮФП-ОЙВХДШ РПДПВОПЕ УМЕДХАЭЕНХ: SELECT * FROM Orders WHERE snum = ( SELECT snum FROM Salespeople WHERE city = Barcelona ); рПУЛПМШЛХ НЩ ЙНЕЕН ФПМШЛП ПДОПЗП РТПДБЧГБ Ч Barcelona - Rifkin, ФП РПДЪБРТПУ ВХДЕФ ЧЩВЙТБФШ ПДЙОПЮОПЕ ЪОБЮЕОЙЕ snum Й УМЕДПЧБФЕМШОП ВХДЕФ РТЙОСФ. оП ЬФП - ФПМШЛП Ч ДБООПН УМХЮБЕ. вПМШЫЙОУФЧП SQL ВБЪ ДБООЩИ ЙНЕАФ НОПЗПЮЙУМЕООЩИ РПМШЪПЧБФЕМЕК, Й ЕУМЙ ДТХЗПК РПМШЪПЧБФЕМШ ДПВБЧЙФ ОПЧПЗП РТПДБЧГБ ЙЪ Barcelona Ч ФБВМЙГХ, РПДЪБРТПУ ЧЩВЕТЕФ ДЧБ ЪОБЮЕОЙС, Й ЧБЫБ ЛПНБОДБ РПФЕТРЙФ ОЕХДБЮХ. DISTINCT у рпдъбртпубнй чЩ НПЦЕФЕ, Ч ОЕЛПФПТЩИ УМХЮБСИ, ЙУРПМШЪПЧБФШ DISTINCT ЮФПВЩ ЧЩОХДЙФШ РПДЪБРТПУ ЗЕОЕТЙТПЧБФШ ПДЙОПЮОПЕ ЪОБЮЕОЙЕ. рТЕДРПМПЦЙН ЮФП НЩ ИПФЙН ОБКФЙ ЧУЕ РПТСДЛЙ ЛТЕДЙФПЧБОЙК ДМС ФЕИ РТПДБЧГПЧ ЛПФПТЩЕ ПВУМХЦЙЧБАФ HoffmanБ ( cnum = 2001 ). йНЕЕФУС ПДЙО УРПУПВ ЮФПВЩ УДЕМБФШ ЬФП ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 10.2 ): SELECT * FROM Orders WHERE snum = ( SELECT DISTINCT snum FROM Orders WHERE cnum = 2001 ); =============== SQL Execution Log ============== | | | SELECT * | | FROM Orders | | WHERE snum = | | (SELECT DISTINCT snum | | FROM Orders | | Where cnum = 2001); | | =============================================== | | onum amt odate cnum snum | | ----- --------- --------- ------ ------- | | 3003 767.19 10/03/1990 2001 1001 | | 3008 4723.00 10/05/1990 2006 1001 | | 3011 9891.88 10/06/1990 2006 1001 | ================================================ тЙУХОПЛ 10.2: йУРПМШЪПЧБОЙЕ DISTINCT ЮФПВЩ ЧЩОХДЙФШ РПМХЮЕОЙЕ ПДОПЗП ЪОБЮЕОЙС ЙЪ РПДЪБРТПУБ рПДЪБРТПУ ХУФБОПЧЙМ ЮФП ЪОБЮЕОЙЕ РПМ snum УПЧРБМП У Hoffman - 1001, Й ЪБФЕН ПУОПЧОПК ЪБРТПУ ЧЩДЕМЙМ ЧУЕ РПТСДЛЙ У ЬФЙН ЪОБЮЕОЙЕН snum ЙЪ ФБВМЙГЩ рПТСДЛПЧ( ОЕ ТБЪВЙТБС, ПФОПУСФУС ПОЙ Л Hoffman ЙМЙ ОЕФ). фБЛ ЛБЛ ЛБЦДЩК ЪБЛБЪЮЙЛ ОБЪОБЮЕО Л ПДОПНХ Й ФПМШЛП ЬФПНХ РТПДБЧГХ, НЩ ЪОБЕН ЮФП ЛБЦДБС УФТПЛБ Ч ФБВМЙГЕ рПТСДЛПЧ У ДБООЩН ЪОБЮЕОЙЕН cnum ДПМЦОБ ЙНЕФШ ФБЛПЕ ЦЕ ЪОБЮЕОЙЕ snum. пДОБЛП ФБЛ ЛБЛ ФБН НПЦЕФ ВЩФШ МАВПЕ ЮЙУМП ФБЛЙИ УФТПЛ, РПДЪБРТПУ НПЗ ВЩ ЧЩЧЕУФЙ НОПЗП ( ИПФС Й ЙДЕОФЙЮОЩИ ) ЪОБЮЕОЙК snum ДМС ДБООПЗП РПМ cnum. бТЗХНЕОФ DISTINCT РТЕДПФЧТБЭБЕФ ЬФП. еУМЙ ОБЫ РПДЪБРТПУ ЧПЪЧТБФЙФ ВПМЕЕ ПДОПЗП ЪОБЮЕОЙС, ЬФП ВХДЕФ ХЛБЪЩЧБФШ ОБ ПЫЙВЛХ Ч ОБЫЙИ ДБООЩИ - ИПТПЫБ ЧЕЭШ ДМС ЪОБАЭЙИ ПВ ЬФПН. бМШФЕТОБФЙЧОЩК РПДИПД ДПМЦЕО ВЩФШ ЮФПВЩ УУЩМБФШУС Л ФБВМЙГЕ ъБЛБЪЮЙЛПЧ Б ОЕ Л ФБВМЙГЕ рПТСДЛПЧ Ч РПДЪБРТПУЕ. фБЛ ЛБЛ РПМЕ cnum - ЬФП РЕТЧЙЮОЩК ЛМАЮ ФБВМЙГЩ ъБЛБЪЮЙЛБ, ЪБРТПУ ЧЩВЙТБАЭЙК ЕЗП ДПМЦЕО РТПЙЪЧЕУФЙ ФПМШЛП ПДОП ЪОБЮЕОЙЕ. ьФП ТБГЙПОБМШОП ФПМШЛП ЕУМЙ ЧЩ ЛБЛ РПМШЪПЧБФЕМШ ЙНЕЕФЕ ДПУФХР Л ФБВМЙГЕ рПТСДЛПЧ ОП ОЕ Л ФБВМЙГЕ ъБЛБЪЮЙЛПЧ. ч ЬФПН УМХЮБЕ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ТЕЫЕОЙЕ ЛПФПТПЕ НЩ РПЛБЪБМЙ ЧЩЫЕ. ( SQL ЙНЕЕФ НЕИБОЙЪНЩ ЛПФПТЩЕ ПРТЕДЕМСАФ - ЛФП ЙНЕЕФ РТЙЧЙМЕЗЙЙ ЮФПВЩ ДЕМБФШ ЮФП-ФП Ч ПРТЕДЕМЕООПК ФБВМЙГЕ. ьФП ВХДЕФ ПВЯСУОСФШУС Ч зМБЧЕ 22.) рПЦБМХКУФБ ХЮФЙФЕ, ЮФП НЕФПДЙЛБ ЙУРПМШЪХЕНБС Ч РТЕДЫЕУФЧХАЭЕН РТЙНЕТЕ РТЙНЕОЙНБ ФПМШЛП ЛПЗДБ ЧЩ ЪОБЕФЕ, ЮФП ДЧБ ТБЪМЙЮОЩИ РПМ Ч ФБВМЙГЕ ДПМЦОЩ ЧУЕЗДБ УПЧРБДБФШ, ЛБЛ Ч ОБЫЕН УМХЮБЕ. ьФБ УЙФХБГЙС ОЕ СЧМСЕФУС ФЙРЙЮОПК Ч ТЕМСГЙПООЩИ ВБЪБИ ДБООЩИ, ПОБ СЧМСЕФУС ЙУЛМАЮЕОЙЕН ЙЪ РТБЧЙМ. ртедйлбфщ у рпдъбртпубнй счмсафус оепвтбфйнщнй чЩ ДПМЦОЩ ПВТБФЙФШ ЧОЙНБОЙЕ ЮФП РТЕДЙЛБФЩ ЧЛМАЮБАЭЙЕ РПДЪБРТПУЩ, ЙУРПМШЪХАФ ЧЩТБЦЕОЙЕ < УЛБМСТОБС ЖПТНБ > < ПРЕТБФПТ > < РПДЪБРТПУ >, Б, ОЕ < РПДЪБРТПУ > < ПРЕТБФПТ > < УЛБМСТОПЕ ЧЩТБЦЕОЙЕ > ЙМЙ, < РПДЪБРТПУ > < ПРЕТБФПТ > < РПДЪБРТПУ >. дТХЗЙНЙ УМПЧБНЙ, ЧЩ ОЕ ДПМЦОЩ ЪБРЙУЩЧБФШ РТЕДЩДХЭЙК РТЙНЕТ ФБЛ: SELECT * FROM Orders WHERE ( SELECT DISTINCT snum FROM Orders WHERE cnum = 2001 ) = snum; ч УФТПЗПК ANSI ТЕБМЙЪБГЙЙ, ЬФП РТЙЧЕДЕФ Л ОЕХДБЮЕ, ИПФС ОЕЛПФПТЩЕ РТПЗТБННЩ Й РПЪЧПМСАФ ДЕМБФШ ФБЛЙЕ ЧЕЭЙ. ANSI ФБЛЦЕ РТЕДПИТБОСЕФ ЧБУ ПФ РПСЧМЕОЙС ПВЕЙИ ЪОБЮЕОЙК РТЙ УТБЧОЕОЙЙ, ЛПФПТЩЕ ОХЦОП ЧЩЧЕУФЙ У РПНПЭША РПДЪБРТПУБ. йурпмшъпчбойе бзтезбфощи жхолгйк ч рпдъбртпуби пДЙО ФЙР ЖХОЛГЙК, ЛПФПТЩК БЧФПНБФЙЮЕУЛЙ НПЦЕФ РТПЙЪЧПДЙФШ ПДЙОПЮОПЕ ЪОБЮЕОЙЕ ДМС МАВПЗП ЮЙУМБ УФТПЛ, ЛПОЕЮОП ЦЕ, - БЗТЕЗБФОБС ЖХОЛГЙС. мАВПК ЪБРТПУ ЙУРПМШЪХАЭЙК ПДЙОПЮОХА ЖХОЛГЙА БЗТЕЗБФБ ВЕЪ РТЕДМПЦЕОЙС GROUP BY ВХДЕФ ЧЩВЙТБФШ ПДЙОПЮОПЕ ЪОБЮЕОЙЕ ДМС ЙУРПМШЪПЧБОЙС Ч ПУОПЧОПН РТЕДЙЛБФЕ. оБРТЙНЕТ, ЧЩ ИПФЙФЕ ХЧЙДЕФШ ЧУЕ РПТСДЛЙ ЙНЕАЭЙЕ УХННХ РТЙПВТЕФЕОЙК ЧЩЫЕ УТЕДОЕК ОБ 4-Е пЛФСВТС ( ЧЩЧПД РПЛБЪБО ОБ тЙУХОЛЕ 10.3 ): SELECT * FROM Orders WHERE amt > ( SELECT AVG (amt) FROM Orders WHERE odate = 10/04/1990 ); =============== SQL Execution Log ============== | | | SELECT * | | FROM Orders | | WHERE amt > | | (SELECT AVG (amt) | | FROM Orders | | WHERE odate = 01/04/1990 ); | | =============================================== | | onum amt odate cnum snum | | ----- -------- ---------- ----- ----- | | 3002 1900.10 10/03/1990 2007 1004 | | 3005 2345.45 10/03/1990 2003 1002 | | 3006 1098.19 10/03/1990 2008 1007 | | 3009 1713.23 10/04/1990 2002 1003 | | 3008 4723.00 10/05/1990 2006 1001 | | 3010 1309.95 10/06/1990 2004 1002 | | 3011 9891.88 10/06/1990 2006 1001 | ================================================ тЙУХОПЛ 10.3: чЩВПТ ЧУЕИ УХНН УП ЪОБЮЕОЙЕН ЧЩЫЕ УТЕДОЕК ОБ 10/04/1990 уТЕДОСС УХННБ РТЙПВТЕФЕОЙК ОБ 4 пЛФСВТС - 1788.98 ( 1713.23 + 75.75) ДЕМЙФУС РПРПМБН, ЮФП Ч ГЕМПН ТБЧОСЕФУС = 894.49. чУЕ УФТПЛЙ УП ЪОБЮЕОЙЕН Ч РПМЕ amt ЧЩЫЕ ЬФПЗП - СЧМСАФУС ЧЩВТБООЩНЙ. йНЕКФЕ ЧЧЙДХ ЮФП УЗТХРРЙТПЧБООЩЕ БЗТЕЗБФОЩЕ ЖХОЛГЙЙ, ЛПФПТЩЕ СЧМСАФУС БЗТЕЗБФОЩНЙ ЖХОЛГЙСНЙ ПРТЕДЕМЕООЩНЙ Ч ФЕТНЙОБИ РТЕДМПЦЕОЙС GROUP BY, НПЗХФ РТПЙЪЧПДЙФШ НОПЗПЮЙУМЕООЩЕ ЪОБЮЕОЙС. пОЙ, УМЕДПЧБФЕМШОП, ОЕ РПЪЧПМЙФЕМШОЩ Ч РПДЪБРТПУБИ ФБЛПЗП ИБТБЛФЕТБ. дБЦЕ ЕУМЙ GROUP BY Й HAVING ЙУРПМШЪХАФУС ФБЛЙН УРПУПВПН, ЮФП ФПМШЛП ПДОБ ЗТХРРБ ЧЩЧПДЙФУС У РПНПЭША РПДЪБРТПУБ, ЛПНБОДБ ВХДЕФ ПФЛМПОЕОБ Ч РТЙОГЙРЕ. чЩ ДПМЦОЩ ЙУРПМШЪПЧБФШ ПДЙОПЮОХА БЗТЕЗБФОХА ЖХОЛГЙА У РТЕДМПЦЕОЙЕН WHERE ЮФП ХУФТБОЙФ ОЕЦЕМБФЕМШОЩЕ ЗТХРРЩ. оБРТЙНЕТ, УМЕДХАЭЙК ЪБРТПУ ЛПФПТЩК ДПМЦЕО ОБКФЙ УТЕД- ОЕЕ ЪОБЮЕОЙЕ ЛПНЙУУЙПООЩИ РТПДБЧГБ Ч мПОДПОЕ - SELECT AVG (comm) FROM Salespeople GROUP BY city HAVlNG city = "London"; ОЕ НПЦЕФ ЙУРПМШЪПЧБФШУС Ч РПДЪБРТПУЕ! чП ЧУСЛПН УМХЮБЕ ЬФП ОЕ МХЮЫЙК УРПУПВ ЖПТНЙТПЧБФШ ЪБРТПУ. дТХЗЙН УРПУПВПН НПЦЕФ ВЩФШ - SELECT AVG (comm) FROM Salespeople WHERE city = "London"; йурпмшъпчбойе рпдъбртпупч лпфптще чщдбаф нопзп уфтпл у рпнпэша претбфптб IN чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ РПДЪБРТПУЩ ЛПФПТЩЕ РТПЙЪЧПДСФ МАВПЕ ЮЙУМП УФТПЛ ЕУМЙ ЧЩ ЙУРПМШЪХЕФЕ УРЕГЙБМШОЩК ПРЕТБФПТ IN ( ПРЕТБФПТЩ BETWEEN, LIKE, Й IS NULL ОЕ НПЗХФ ЙУРПМШЪПЧБФШУС У РПДЪБРТПУБНЙ ). лБЛ ЧЩ РПНОЙФЕ, IN ПРТЕДЕМСЕФ ОБВПТ ЪОБЮЕОЙК, ПДОП ЙЪ ЛПФПТЩИ ДПМЦОП УПЧРБДБФШ У ДТХЗЙН ФЕТНЙОПН ХТБЧОЕОЙС РТЕДЙЛБФБ Ч РПТСДЛЕ, ЮФПВЩ РТЕДЙЛБФ ВЩМ ЧЕТОЩН. лПЗДБ ЧЩ ЙУРПМШЪХЕФЕ IN У РПДЪБРТПУПН, SQL РТПУФП ЖПТНЙТХЕФ ЬФПФ ОБВПТ ЙЪ ЧЩЧПДБ РПДЪБРТПУБ. нЩ НПЦЕН, УМЕДПЧБФЕМШОП, ЙУРПМШЪПЧБФШ IN ЮФПВЩ ЧЩРПМОЙФШ ФБЛПК ЦЕ РПДЪБРТПУ ЛПФПТЩК ОЕ ВХДЕФ ТБВПФБФШ У ТЕМСГЙПООЩН ПРЕТБФПТПН, Й ОБКФЙ ЧУЕ БФТЙВХФЩ ФБВМЙГЩ рПТСДЛПЧ ДМС РТПДБЧГБ Ч мПОДПОЕ ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 10.4 ): SELECT * FROM Orders WHERE snum IN ( SELECT snum FROM Salespeople WHERE city = "LONDON" ); =============== SQL Execution Log ============== | | | SELECT * | | FROM Orders | | WHERE snum IN | | (SELECT snum | | FROM Salespeople | | WHERE city = 'London'); | | =============================================== | | onum amt odate cnum snum | | ----- -------- ---------- ----- ------ | | 3003 767.19 10/03/1990 2001 1001 | | 3002 1900.10 10/03/1990 2007 1004 | | 3006 1098.19 10/03/1990 2008 1007 | | 3008 4723.00 10/05/1990 2006 1001 | | 3011 9891.88 10/06/1990 2006 1001 | ================================================ тЙУХОПЛ 10. 4: йУРПМШЪПЧБОЙЕ РПДЪБРТПУБ У IN ч УЙФХБГЙЙ РПДПВОП ЬФПК, РПДЪБРТПУ - ВПМЕЕ РТПУФ ДМС РПМШЪПЧБФЕМС ЮФПВЩ РПОЙНБФШ ЕЗП Й ВПМЕЕ РТПУФ ДМС ЛПНРШАФЕТБ ЮФПВЩ ЕЗП ЧЩРПМОЙФШ, ЮЕН ЕУМЙ ВЩ чЩ ЙУРПМШЪПЧБМЙ ПВЯЕДЙОЕОЙЕ: SELECT onum, amt, odate, cnum, Orders.snum FROM Orders, Salespeople WHERE Orders.snum = Salespeople.snum AND Salespeople.city = "London"; иПФС ЬФП Й РТПЙЪЧЕДЕФ ФПФ ЦЕ УБНЩК ЧЩЧПД ЮФП Й Ч РТЙНЕТЕ У РПДЪБРТПУПН, SQL ДПМЦЕО ВХДЕФ РТПУНПФТЕФШ ЛБЦДХА ЧПЪНПЦОХА ЛПНВЙОБГЙА УФТПЛ ЙЪ ДЧХИ ФБВМЙГ Й РТПЧЕТЙФШ ЙИ УОПЧБ РП УПУФБЧОПНХ РТЕДЙЛБФХ. рТПЭЕ Й ЬЖЖЕЛФЙЧОЕЕ ЙЪЧМЕЛБФШ ЙЪ ФБВМЙГЩ рТПДБЧГПЧ ЪОБЮЕОЙС РПМ snum ЗДЕ city = "London", Й ЪБФЕН ЙУЛБФШ ЬФЙ ЪОБЮЕОЙС Ч ФБВМЙГЕ рПТСДЛПЧ, ЛБЛ ЬФП ДЕМБЕФУС Ч ЧБТЙБОФЕ У РПДЪБРТПУПН. чОХФТЕООЙК ЪБРТПУ ДБЕФ ОБН snums=1001 Й snum=1004. чОЕЫОЙК ЪБРТПУ, ЪБФЕН, ДБЕФ ОБН УФТПЛЙ ЙЪ ФБВМЙГЩ рПТСДЛПЧ ЗДЕ ЬФЙ РПМ snum ОБКДЕОЩ. уФТПЗП ЗПЧПТ, ВЩУФТЕЕ ЙМЙ ОЕФ ТБВПФБЕФ ЧБТЙБОФ РПДЪБРТПУБ, РТБЛФЙЮЕУЛЙ ЪБЧЙУЙФ ПФ ТЕБМЙЪБГЙЙ - Ч ЛБЛПК РТПЗТБННЕ ЧЩ ЬФП ЙУРПМШЪХЕФЕ. ьФБ ЮБУФШ ЧБЫЕК РТПЗТБННЩ ОБЪЩЧБЕНПК - ПРФЙНЙЪБФПТ, РЩФБЕФУС ОБКФЙ ОБЙВПМЕЕ ЬЖЖЕЛФЙЧОЩК УРПУПВ ЧЩРПМОЕОЙС ЧБЫЙИ ЪБРТПУПЧ. иПТПЫЙК ПРФЙНЙЪБФПТ ЧП ЧУСЛПН УМХЮБЕ РТЕПВТБЪХЕФ ЧБТЙБОФ ПВЯЕДЙОЕОЙС Ч РПДЪБРТПУ, ОП ОЕФ ДПУФБФПЮОП РТПУФПЗП УРПУПВБ ДМС ЧБУ ЮФПВЩ ЧЩСУОЙФШ ЧЩРПМОЕОП ЬФП ЙМЙ ОЕФ. мХЮЫЕ УПИТБОЙФШ ЧБЫЙ ЪБРТПУЩ Ч РБНСФЙ ЮЕН РПМБЗБФШУС РПМОПУФША ОБ ПРФЙНЙЪБФПТ. лПОЕЮОП ЧЩ НПЦЕФЕ ФБЛЦЕ ЙУРПМШЪПЧБФШ ПРЕТБФПТ IN, ДБЦЕ ЛПЗДБ ЧЩ ХЧЕТЕОЩ ЮФП РПДЪБРТПУ РТПЙЪЧЕДЕФ ПДЙОПЮОПЕ ЪОБЮЕОЙЕ. ч МАВПК УЙФХБГЙЙ ЗДЕ ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ТЕМСГЙПООЩК ПРЕТБФПТ УТБЧОЕОЙС (=), ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ IN. ч ПФМЙЮЙЕ ПФ ТЕМСГЙПООЩИ ПРЕТБФПТПЧ, IN ОЕ НПЦЕФ ЪБУФБЧЙФШ ЛПНБОДХ РПФЕТРЕФШ ОЕХДБЮХ ЕУМЙ ВПМШЫЕ ЮЕН ПДОП ЪОБЮЕОЙЕ ЧЩВТБОП РПДЪБРТПУПН. ьФП НПЦЕФ ВЩФШ ЙМЙ РТЕЙНХЭЕУФЧПН ЙМЙ ОЕДПУФБФЛПН. чЩ ОЕ ХЧЙДЙФЕ ОЕРПУТЕДУФЧЕООП ЧЩЧПДБ ЙЪ РПДЪБРТПУПЧ; ЕУМЙ ЧЩ РПМБЗБЕФЕ ЮФП РПДЪБРТПУ УПВЙТБЕФУС РТПЙЪЧЕУФЙ ФПМШЛП ПДОП ЪОБЮЕОЙЕ, Б ПО РТПЙЪЧПДЙФ ТБЪМЙЮОЩЕ. чЩ ОЕ УНПЦЕФЕ ПВЯСУОЙФШ ТБЪМЙЮЙ Ч ЧЩЧПДЕ ПУОПЧОПЗП ЪБРТПУБ. оБРТЙНЕТ, ТБУУНПФТЙН ЛПНБОДХ, ЛПФПТБС РПИПЦБ ОБ РТЕДЩДХЭХА: SELECT onum, amt, odate FROM Orders WHERE snum = ( SELECT snum FROM Orders WHERE cnum = 2001 ); чЩ НПЦЕФЕ ХУФТБОЙФШ РПФТЕВОПУФШ Ч DISTINCT ЙУРПМШЪХС IN ЧНЕУФП (=), РПДПВОП ЬФПНХ: SELECT onum, amt, odate FROM Orders WHERE snum IN ( SELECT snum FROM Orders WHERE cnum = 2001 ); юФП УМХЮЙФУС ЕУМЙ ЕУФШ ПЫЙВЛБ Й ПДЙО ЙЪ РПТСДЛПЧ ВЩМ БЛЛТЕДЙФПЧБО Л ТБЪМЙЮОЩН РТПДБЧГБН? чЕТУЙС ЙУРПМШЪХАЭБС IN ВХДЕФ ДБЧБФШ ЧБН ЧУЕ РПТСДЛЙ ДМС ПВПЙИ РТПДБЧГПЧ. оЕФ ОЙЛБЛПЗП ПЮЕЧЙДОПЗП УРПУПВБ ОБВМАДЕОЙС ЪБ ПЫЙВЛПК, Й РПЬФПНХ УЗЕОЕТЙТПЧБООЩЕ ПФЮЕФЩ ЙМЙ ТЕЫЕОЙС УДЕМБООЩЕ ОБ ПУОПЧЕ ЬФПЗП ЪБРТПУБ ОЕ ВХДХФ УПДЕТЦБФШ ПЫЙВЛЙ. чБТЙБОФ ЙУРПМШЪХАЭЙК ( = ) , РТПУФП РПФЕТРЙФ ОЕХДБЮХ. ьФП, РП ЛТБКОЕК НЕТЕ, РПЪЧПМЙМП ЧБН ХЪОБФШ ЮФП ЙНЕЕФУС ФБЛБС РТПВМЕНБ. чЩ ДПМЦОЩ ЪБФЕН ЧЩРПМОСФШ РПЙУЛ ОЕЙУРТБЧОПУФЙ, ЧЩРПМОЙЧ ЬФПФ РПДЪБ- РТПУ ПФДЕМШОП Й ОБВМАДБС ЪОБЮЕОЙС ЛПФПТЩЕ ПО РТПЙЪЧПДЙФ. ч РТЙОГЙРЕ, ЕУМЙ ЧЩ ЪОБЕФЕ ЮФП РПДЪБРТПУ ДПМЦЕО( РП МПЗЙЛЕ) ЧЩЧЕУФЙ ФПМШЛП ПДОП ЪОБЮЕОЙЕ, ЧЩ ДПМЦОЩ ЙУРПМШЪПЧБФШ = . IN СЧМСЕФУС РПДИПДСЭЙН, ЕУМЙ ЪБРТПУ НПЦЕФ ПЗТБОЙЮЕООП РТПЙЪЧПДЙФШ ПДОП ЙМЙ ВПМЕЕ ЪОБЮЕОЙК, ОЕЪБЧЙУЙНП ПФ ФПЗП ПЦЙДБЕФЕ ЧЩ ЙИ ЙМЙ ОЕФ. рТЕДРПМПЦЙН, НЩ ИПФЙН ЪОБФШ ЛПНЙУУЙПООЩЕ ЧУЕИ РТПДБЧГПЧ ПВУМХЦЙЧБА- ЭЙИ ЪБЛБЪЮЙЛПЧ Ч мПОДПОЕ: SELECT comm FROM Salespeople WHERE snum IN ( SELECT snum FROM Customers WHERE city = "London" ); чЩЧПДЙНЩНЙ ДМС ЬФПЗП ЪБРТПУБ, РПЛБЪБООПЗП Ч тЙУХОЛЕ 10.5, СЧМСАФУС ЪОБЮЕОЙС ЛПНЙУУЙПООЩИ РТПДБЧГБ Peel ( snum = 1001 ), ЛПФПТЩК ЙНЕЕФ ПВПЙИ ЪБЛБЪЮЙЛПЧ Ч мПОДПОЕ. ьФП - ФПМШЛП ДМС ДБООПЗП УМХЮБС. оЕФ ОЙЛБЛПК РТЙЮЙОЩ ЮФПВЩ ОЕЛПФПТЩЕ ЪБЛБЪЮЙЛЙ Ч мПОДПОЕ ОЕ НПЗМЙ ВЩФШ ОБЪОБЮЕООЩНЙ Л ЛПНХ-ФП ЕЭЕ. уМЕДПЧБФЕМШОП, IN - ЬФП ОБЙВПМЕЕ МПЗЙЮОБ ЖПТНБ ЮФПВЩ ЙУРПМШЪПЧБФШ ЕЕ Ч ЪБРТПУЕ. =============== SQL Execution Log ============== | | | SELECT comm | | FROM Salespeople | | WHERE snum IN | | (SELECT snum | | FROM Customers | | WHERE city = 'London'); | | =============================================== | | comm | | ------- | | 0.12 | | | | | ================================================ тЙУХОПЛ 10.5 йУРПМШЪПЧБОЙЕ IN У РПДЪБРТПУПН ДМС ЧЩЧПДБ ПДОПЗП ЪОБЮЕОЙС нЕЦДХ РТПЮЙН, РТЕЖЙЛУ ФБВМЙГЩ ДМС РПМ city ОЕПВСЪБФЕМЕО Ч РТЕДЩДХ- ЭЕН РТЙНЕТЕ, ОЕУНПФТС ОБ ЧПЪНПЦОХА ОЕПДОПЪОБЮОПУФШ НЕЦДХ РПМСНЙ city ФБВМЙГЩ ъБЛБЪЮЙЛБ Й ФБВМЙГЩ рТПДБЧГПЧ. SQL ЧУЕЗДБ ЙЭЕФ РЕТЧПЕ РПМЕ Ч ФБВМЙГЕ ПВПЪОБЮЕООПК Ч РТЕДМПЦЕОЙЙ FROM ФЕЛХЭЕЗП РПДЪБРТПУБ. еУМЙ РПМЕ У ДБООЩН ЙНЕОЕН ФБН ОЕ ОБКДЕОП, РТПЧЕТСАФУС ЧОЕЫОЙЕ ЪБРТПУЩ. ч ЧЩЫЕХРПНСОХФПН РТЙНЕТЕ, "city" Ч РТЕДМПЦЕОЙЙ WHERE ПЪОБЮБЕФ ЮФП ЙНЕЕФУС УУЩМЛБ Л Customer.city( РПМЕ city ФБВМЙГЩ ъБЛБЪЮЙЛПЧ). фБЛ ЛБЛ ФБВМЙГБ ъБЛБЪЮЙЛПЧ ХЛБЪБОБ Ч РТЕДМПЦЕОЙЙ FROM ФЕЛХЭЕЗП ЪБРТПУБ, SQL РТЕДРПМБЗБЕФ ЮФП ЬФП - РТБЧЙМШОП. ьФП РТЕДРПМПЦЕОЙЕ НПЦЕФ ВЩФШ ПФНЕОЕОП РПМОЩН ЙНЕОЕН ФБВМЙГЩ ЙМЙ РТЕЖЙЛУПН РУЕЧДПОЙНБ, П ЛПФПТЩИ НЩ РПЗПЧПТЙН РПЪЦЕ ЛПЗДБ ВХДЕН ЗПЧПТЙФШ ПВ УППФОЕУЕООЩИ РПДЪБРТПУБИ. еУМЙ ЧПЪНПЦЕО ВЕУРПТСДПЛ, ЛПОЕЮОП ЦЕ, МХЮЫЕ ЧУЕЗП ЙУРПМШЪПЧБФШ РТЕЖЙЛУЩ. рпдъбртпущ чщвйтбаф пдйопюоще уфпмвгщ уНЩУМ ЧУЕИ РПДЪБРТПУПЧ ПВУХЦДЕООЩИ Ч ЬФПК ЗМБЧЕ ФПФ, ЮФП ЧУЕ ПОЙ ЧЩВЙТБАФ ПДЙОПЮОЩК УФПМВЕГ. ьФП ПВСЪБФЕМШОП, РПУЛПМШЛХ ЧЩВТБООЩК ЧЩЧПД УТБЧОЙЧБЕФ- У ПДЙОПЮОЩН ЪОБЮЕОЙЕН. рПДФЧЕТЦДЕОЙЕН ЬФПНХ ФП, ЮФП SELECT * ОЕ НПЦЕФ ЙУРПМШЪПЧБФШУС Ч РПДЪБРТПУЕ. йНЕЕФУС ЙУЛМАЮЕОЙЕ ЙЪ ЬФПЗП, ЛПЗДБ РПДЪБР- ТПУЩ ЙУРПМШЪХАФУС У ПРЕТБФПТПН EXISTS, ЛПФПТЩК НЩ ВХДЕН РТЕДУФБЧМСФШ Ч зМБЧЕ 12. йурпмшъпчбойе чщтбцеойк ч рпдъбртпуби чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ЧЩТБЦЕОЙЕ ПУОПЧБООПЕ ОБ УФПМВГЕ, Б ОЕ РТПУФП УБН УФПМВЕГ, Ч РТЕДМПЦЕОЙЙ SELECT РПДЪБРТПУБ. ьФП НПЦЕФ ВЩФШ ЧЩРПМОЕОП ЙМЙ У РПНПЭША ТЕМСГЙПООЩИ ПРЕТБФПТПЧ ЙМЙ У IN. оБРТЙНЕТ, УМЕДХАЭЙК ЪБРТПУ ЙУРПМШЪХЕФ ТЕМСГЙПООЩК ПРЕТБФПТ = ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 10.6 ): SELECT * FROM Customers WHERE cnum = ( SELECT snum + 1000 FROM Salespeople WHERE sname = Serres ); пО ОБИПДЙФ ЧУЕИ ЪБЛБЪЮЙЛПЧ ЮШЕ ЪОБЮЕОЙЕ РПМ cnum ТБЧОПЕ 1000, ЧЩЫЕ РПМ snum Serres. нЩ РТЕДРПМБЗБЕН ЮФП УФПМВЕГ sname ОЕ ЙНЕЕФ ОЙЛБЛЙИ ДЧПКОЩИ ЪОБЮЕОЙК ( ЬФП НПЦЕФ ВЩФШ РТЕДРЙУБОП ЙМЙ UNIQUE INDEX, ПВУХЦДБЕНЩН Ч зМБЧЕ 17, ЙМЙ ПЗТБОЙЮЕОЙЕН UNIQUE, ПВУХЦДБЕНЩН Ч зМБЧЕ 18 ); ЙОБЮЕ =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE cnum = | | (SELECT snum + 1000 | | WHERE Salespeople | | WHERE sname = 'Serres' | | ============================================= | | cnum cname city rating snum | | ----- -------- ---- ------ ----- | | 2002 Giovanni Rome 200 1003 | ============================================= тЙУХОПЛ 10.6: йУРПМШЪПЧБОЙЕ РПДЪБРТПУБ У ЧЩТБЦЕОЙЕН РПДЪБРТПУ НПЦЕФ РТПЙЪЧЕУФЙ НОПЗПЮЙУМЕООЩЕ ЪОБЮЕОЙС. лПЗДБ РПМ snum Й Уnum ОЕ ЙНЕАФ ФБЛПЗП РТПУФПЗП ЖХОЛГЙПОБМШОПЗП ЪОБЮЕОЙС ЛБЛ ОБРТЙНЕТ РЕТЧЙЮОЩК ЛМАЮ , ЮФП ОЕ ЧУЕЗДБ ИПТПЫП, ЪБРТПУ ФЙРБ ЧЩЫЕХРПНСОХФПЗП ОЕЧЕТПСФОП РПМЕЪЕО. рпдъбртпущ ч ртедмпцеойй HAVING чЩ НПЦЕФЕ ФБЛЦЕ ЙУРПМШЪПЧБФШ РПДЪБРТПУЩ ЧОХФТЙ РТЕДМПЦЕОЙС HAVING. ьФЙ РПДЪБРТПУЩ НПЗХФ ЙУРПМШЪПЧБФШ УЧПЙ УПВУФЧЕООЩЕ БЗТЕЗБФОЩЕ ЖХОЛГЙЙ ЕУМЙ ПОЙ ОЕ РТПЙЪЧПДСФ НОПЗПЮЙУМЕООЩИ ЪОБЮЕОЙК ЙМЙ ЙУРПМШЪПЧБФШ GROUP BY ЙМЙ HAVING. уМЕДХАЭЙК ЪБРТПУ СЧМСЕФУС ЬФПНХ РТЙНЕТПН ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 10.7 ): SELECT rating, COUNT ( DISTINCT cnum ) FROM Customers GROUP BY rating HAVING rating > ( SELECT AVG (rating) FROM Customers WHERE city = " San Jose'; =============== SQL Execution Log ============ | | | SELECT rating,count (DISTINCT cnum) | | FROM Customers | | GROUP BY rating | | HAVING rating > | | (SELECT AVG (rating)snum + 1000 | | FROM Custimers | | WHERE city = 'San Jose' | |============================================ | | rating | | -------- -------- | | 200 2 | ================================================ тЙУХОПЛ 10.7: оБИПЦДЕОЙЕ ЪБЛБЪЮЙЛПЧ У ПГЕОЛПК ЧЩЫЕ УТЕДОЕЗП Ч San Jose ьФБ ЛПНБОДБ РПДУЮЙФЩЧБЕФ ЪБЛБЪЮЙЛПЧ У ПГЕОЛБНЙ ЧЩЫЕ УТЕДОЕЗП Ч San Jose. фБЛ ЛБЛ ЙНЕАФУС ДТХЗЙЕ ПГЕОЛЙ ПФМЙЮОЩЕ ПФ 300, ПОЙ ДПМЦОЩ ВЩФШ ЧЩЧЕДЕОЩ У ЮЙУМПН ОПНЕТПЧ ЪБЛБЪЮЙЛПЧ ЛПФПТЩЕ ЙНЕМЙ ЬФХ ПГЕОЛХ. теъане фЕРЕТШ ЧЩ ЙУРПМШЪХЕФЕ ЪБРТПУЩ Ч ЙЕТБТИЙЮЕУЛПК НБОЕТЕ. чЩ ЧЙДЕМЙ, ЮФП ЙУРПМШЪПЧБОЙЕ ТЕЪХМШФБФБ ПДОПЗП ЪБРТПУБ ДМС ХРТБЧМЕОЙС ДТХЗЙН, ТБУЫЙТСЕФ ЧПЪНПЦОПУФЙ РПЪЧПМСАЭЙЕ ЧЩРПМОЙФШ ВПМШЫЕЕ ЛПМЙЮЕУФЧП ЖХОЛГЙК. чЩ ФЕРЕТШ РПОЙНБЕФЕ ЛБЛ ЙУРПМШЪПЧБФШ РПДЪБРТПУЩ У ТЕМСГЙПООЩНЙ ПРЕТБ- ФПТБНЙ ФБЛЦЕ ЛБЛ Й УП УРЕГЙБМШОЩН ПРЕТБФПТПН IN, ЙМЙ Ч РТЕДМПЦЕОЙЙ WHERE ЙМЙ Ч РТЕДМПЦЕОЙЙ HAVING ЧОЕЫОЕЗП ЪБРТПУБ. ч УМЕДХАЭЙИ ЗМБЧБИ, НЩ ВХДЕН ТБЪТБВБФЩЧБФШ РПДЪБРТПУЩ. уОБЮБМБ Ч зМБЧЕ 11, НЩ ПВУХДЙН ДТХЗПК ЧЙД РПДЪБРТПУБ, ЛПФПТЩК ЧЩРПМОСЕФУС ПФДЕМШОП ДМС ЛБЦДПК УФТПЛЙ ФБВМЙГЩ ЧЩЪЩЧБЕНПК ЧП ЧОЕЫОЕН ЪБРТПУЕ. ъБФЕН, Ч зМБЧЕ 12 Й 13, НЩ РТЕДУФБЧЙН ЧБУ ОЕУЛПМШЛЙН УРЕГЙБМШОЩН ПРЕТБФП- ТБН ЛПФПТЩЕ ЖХОЛГЙПОЙТХАФ ОБ ЧУЕИ РПДЪБРТПУБИ, ЛБЛ ЬФП ДЕМБЕФ IN, ЪБ ЙУЛМАЮЕОЙЕН ЛПЗДБ ЬФЙ ПРЕТБФПТЩ НПЗХФ ЙУРПМШЪПЧБФШУС ФПМШЛП Ч РПДЪБРТПУБИ. тбвпфб у SQL 1. оБРЙЫЙФЕ ЪБРТПУ, ЛПФПТЩК ВЩ ЙУРПМШЪПЧБМ РПДЪБРТПУ ДМС РПМХЮЕОЙС ЧУЕИ РПТСДЛПЧ ДМС ЪБЛБЪЮЙЛБ У ЙНЕОЕН Cisneros. рТЕДРПМПЦЙН, ЮФП ЧЩ ОЕ ЪОБЕФЕ ОПНЕТБ ЬФПЗП ЪБЛБЪЮЙЛБ, ХЛБЪЩЧБЕНПЗП Ч РПМЕ cnum. 2. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩЧЕМ ВЩ ЙНЕОБ Й ПГЕОЛЙ ЧУЕИ ЪБЛБЪЮЙЛПЧ ЛПФПТЩЕ ЙНЕАФ ХУТЕДОЕООЩЕ РПТСДЛЙ. 3. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ВЩ ЧЩВТБМ ПВЭХА УХННХ ЧУЕИ РТЙПВТЕФЕОЙК Ч РПТСДЛБИ ДМС ЛБЦДПЗП РТПДБЧГБ, Х ЛПФПТПЗП ЬФБ ПВЭБ УХННБ ВПМШЫЕ ЮЕН УХННБ ОБЙВПМШЫЕЗП РПТСДЛБ Ч ФБВМЙГЕ. ( уН. рТЙМПЦЕОЙЕ A ДМС ПФЧЕФПЧ. )

Соседние файлы в папке Understanding SQL (rus - html)