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

Understanding SQL. Chapter 9. пвяедйоеойе фбвмйгщ у упвпк ч змбче 8, нщ рплбъбмй чбн лбл пвяедйосфш дче ЙМЙ ВПМЕЕ ФБВМЙГ - ЧНЕУФЕ. дПУФБФПЮОП ЙОФЕТЕУОП ФП, ЮФП ФБ ЦЕ УБНБ НЕФПДЙЛБ НПЦЕФ ЙУРПМШЪПЧБФШУС ЮФПВЩ ПВЯЕДЙОСФШ ЧНЕУФЕ ДЧЕ ЛПРЙЙ ПДЙОПЮОПК ФБВМЙГЩ. ч ЬФПК ЗМБЧЕ, НЩ ВХДЕН ЙУУМЕДПЧБФШ ЬФПФ РТПГЕУУ. лБЛ ЧЩ ЧЙДЙФЕ, ПВЯЕДЙОЕОЙЕ ФБВМЙГЩ У УБНПК УПВПК, ДБМЕЛП ОЕ РТПУФБ ЧЕЭШ, Й НПЦЕФ ВЩФШ ПЮЕОШ РПМЕЪОЩН УРПУПВПН ПРТЕДЕМСФШ ПРТЕДЕМЕООЩЕ ЧЙДЩ УЧСЪЕК НЕЦДХ РХОЛФБНЙ ДБООЩИ Ч ЛПОЛТЕФОПК ФБВМЙГЕ. лбл дембфш пвяедйоеойе фбвмйгщ у упвпк ? дМС ПВЯЕДЙОЕОЙС ФБВМЙГЩ У УПВПК, ЧЩ НПЦЕФЕ УДЕМБФШ ЛБЦДХА УФТПЛХ ФБВМЙГЩ, ПДОПЧТЕНЕООП, Й ЛПНВЙОБГЙЕК ЕЕ У УПВПК Й ЛПНВЙОБГЙЕК У ЛБЦДПК ДТХЗПК УФТПЛПК ФБВМЙГЩ. чЩ ЪБФЕН ПГЕОЙЧБЕФЕ ЛБЦДХА ЛПНВЙОБГЙА Ч ФЕТНЙОБИ РТЕДЙЛБФБ, ФБЛЦЕ ЛБЛ Ч ПВЯЕДЙОЕОЙСИ НХМШФЙФБВМЙГ. ьФП РПЪЧПМЙФ ЧБН МЕЗЛП УПЪДБЧБФШ ПРТЕДЕМЕООЩЕ ЧЙДЩ УЧСЪЕК НЕЦДХ ТБЪМЙЮОЩНЙ РПЪЙГЙСНЙ ЧОХФТЙ ПДЙОПЮОПК ФБВМЙГЩ - У РПНПЭША ПВОБТХЦЕОЙС РБТ УФТПЛ УП ЪОБЮЕОЙЕН РПМС, ОБРТЙНЕТ. чЩ НПЦЕФЕ ЙЪПВТБЪЙФШ ПВЯЕДЙОЕОЙЕ ФБВМЙГЩ У УПВПК, ЛБЛ ПВЯЕДЙОЕОЙЕ ДЧХИ ЛПРЙК ПДОПК Й ФПК ЦЕ ФБВМЙГЩ. фБВМЙГБ ОБ УБНПН ДЕМЕ ОЕ ЛПРЙТХЕФУС, ОП SQL ЧЩРПМОСЕФ ЛПНБОДХ ФБЛ, ЛБЛ ЕУМЙ ВЩ ЬФП ВЩМП УДЕМБОП. дТХЗЙНЙ УМПЧБНЙ, ЬФП ПВЯЕДЙОЕОЙЕ - ФБЛПЕ ЦЕ, ЛБЛ Й МАВПЕ ДТХЗПЕ ПВЯЕДЙОЕОЙЕ НЕЦДХ ДЧХН ФБВМЙГБНЙ, ЪБ ЙУЛМАЮЕОЙЕН ФПЗП, ЮФП Ч ДБООПН УМХЮБЕ ПВЕ ФБВМЙГЩ ЙДЕОФЙЮОЩ. руечдпойнщ уЙОФБЛУЙУ ЛПНБОДЩ ДМС ПВЯЕДЙОЕОЙС ФБВМЙГЩ У УПВПК, ФПФ ЦЕ ЮФП Й ДМС ПВЯЕДЙОЕОЙС НОПЗПЮЙУМЕООЩИ ФБВМЙГ, Ч ПДОПН ЬЛЪЕНРМСТЕ. лПЗДБ ЧЩ ПВЯЕДЙОСЕФЕ ФБВМЙГХ У УПВПК, ЧУЕ РПЧФПТСЕНЩЕ ЙНЕОБ УФПМВГБ, ЪБРПМОСАФУС РТЕЖЙЛУБНЙ ЙНЕОЙ ФБВМЙГЩ. юФПВЩ УУЩМБФШУС Л ЬФЙН УФПМВ- ГБН ЧОХФТЙ ЪБРТПУБ, ЧЩ ДПМЦОЩ ЙНЕФШ ДЧБ ТБЪМЙЮОЩИ ЙНЕОЙ ДМС ЬФПК ФБВМЙГЩ. чЩ НПЦЕФЕ УДЕМБФШ ЬФП У РПНПЭША ПРТЕДЕМЕОЙС ЧТЕНЕООЩИ ЙНЕО ОБЪЩЧБЕНЩИ - .РЕТЕНЕООЩНЙ ДЙБРБЪПОБ, РЕТЕНЕООЩНЙ ЛПТТЕМСГЙЙ ЙМЙ РТПУФП - РУЕЧДПОЙНБНЙ чЩ ПРТЕДЕМСЕФЕ ЙИ Ч РТЕДМПЦЕОЙЙ FROM ЪБРТПУБ. ьФП ПЮЕОШ РТПУФП: ЧЩ ОБВЙТБЕФЕ ЙН ФБВМЙГЩ, ПУФБЧМСЕФЕ РТПВЕМ, Й ЪБФЕН ОБВЙТБЕФЕ РУЕЧДПОЙН ДМС ОЕЕ. йНЕЕФУС РТЙНЕТ ЛПФПТЩК ОБИПДЙФ ЧУЕ РБТЩ ЪБЛБЪЮЙЛПЧ ЙНЕАЭЙИ ПДЙО Й ФПФ ЦЕ УБНЩК ТЕКФЙОЗ ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 9.1 ): SELECT first.cname, second.cname, first.rating FROM Customers first, Customers second WHERE first.rating = second.rating; =============== SQL Execution Log ============== | | | Giovanni Giovanni 200 | | Giovanni Liu 200 | | Liu Giovanni 200 | | Liu Liu 200 | | Grass Grass 300 | | Grass Cisneros 300 | | Clemens Hoffman 100 | | Clemens Clemens 100 | | Clemens Pereira 100 | | Cisneros Grass 300 | | Cisneros Cisneros 300 | | Pereira Hoffman 100 | | Pereira Clemens 100 | | Pereira Pereira 100 | | | =============================================== тЙУХОПЛ 9.1: пВЯЕДЙОЕОЙЕ ФБВМЙГЩ У УПВПК ( ПВТБФЙФЕ ЧОЙНБОЙЕ ЮФП ОБ тЙУХОЛЕ 9.1, ЛБЛ Й Ч ОЕЛПФПТЩИ ДБМШОЕКЫЙИ РТЙНЕТБИ, РПМОЩК ЪБРТПУ ОЕ НПЦЕФ ХНЕУФЙФШУС Ч ПЛОЕ ЧЩЧПДБ, Й УМЕДПЧБФЕМШОП ВХДЕФ ХУЕЛБФШУС. ) ч ЧЩЫЕХРПНСОХФПК ЛПНБОДЕ, SQL ЧЕДЕФ УЕВС ФБЛ, ЛБЛ ЕУМЙ ВЩ ПО УПЕДЙОСМ ДЧЕ ФБВМЙГЩ ОБЪЩЧБЕНЩЕ 'РЕТЧБС Й 'ЧФПТБС'. пВЕ ПОЙ - ЖБЛФЙЮЕУЛЙ, ФБВМЙГЩ ъБЛБЪЮЙЛБ, ОП РУЕЧДПОЙНЩ ТБЪТЕЫБАФ ЙН ВЩФШ ПВТБВПФБООЩНЙ ОЕЪБЧЙУЙНП. рУЕЧДПОЙНЩ РЕТЧЩК Й ЧФПТПК ВЩМЙ ХУФБОПЧМЕОЩ Ч РТЕДМПЦЕОЙЙ FROM ЪБРТПУБ, УТБЪХ РПУМЕ ЙНЕОЙ ЛПРЙЙ ФБВМЙГЩ. пВТБФЙФЕ ЧОЙНБОЙЕ ЮФП РУЕЧДПОЙНЩ НПЗХФ ЙУРПМШЪПЧБФШУС Ч РТЕДМПЦЕОЙЙ SELECT, ДБЦЕ ЕУМЙ ПОЙ ОЕ ПРТЕДЕМЕОЩ Ч РТЕДМПЦЕОЙЙ FROM. ьФП - ПЮЕОШ ИПТПЫП. SQL ВХДЕФ УОБЮБМБ ДПРХУЛБФШ МАВЩЕ ФБЛЙЕ РУЕЧДПОЙНЩ ОБ ЧЕТХ, ОП ВХДЕФ ПФЛМПОСФШ ЛПНБОДХ ЕУМЙ ПОЙ ОЕ ПРТЕДЕМЕОЩ ДБМЕЕ Ч РТЕДМПЦЕОЙЙ FROM ЪБРТПУБ. рУЕЧДПОЙН УХЭЕУФЧХЕФ - ФПМШЛП РПЛБ ЛПНБОДБ ЧЩРПМОСЕФУС ! лПЗДБ ЪБРТПУ ЪБЛБОЮЙЧБЕФУС, РУЕЧДПОЙНЩ ЙУРПМШЪХЕНЩЕ Ч ОЕН ВПМШЫЕ ОЕ ЙНЕАФ ОЙЛБЛПЗП ЪОБЮЕОЙС. фЕРЕТШ, ЛПЗДБ ЙНЕАФУС ДЧЕ ЛПРЙЙ ФБВМЙГЩ ъБЛБЪЮЙЛПЧ, ЮФПВЩ ТБВПФБФШ У ОЙНЙ, SQL НПЦЕФ ПВТБВБФЩЧБФШ ЬФХ ПРЕТБГЙА ФПЮОП ФБЛЦЕ ЛБЛ Й МАВПЕ ДТХЗПЕ ПВЯЕДЙОЕОЙЕ - ВЕТЕФ ЛБЦДХА УФТПЛХ ЙЪ ПДОПЗП РУЕЧДПОЙНБ Й УТБЧОЙЧБЕФ ЕЕ У ЛБЦДПК УФТПЛПК ЙЪ ДТХЗПЗП РУЕЧДПОЙНБ. хуфтбоеойе йъвщфпюопуфй пВТБФЙФЕ ЧОЙНБОЙЕ ЮФП ОБЫ ЧЩЧПД ЙНЕЕФ ДЧБ ЪОБЮЕОЙЕ ДМС ЛБЦДПК ЛПНВЙОБГЙЙ, РТЙЮЕН ЧФПТПК ТБЪ Ч ПВТБФОПН РПТСДЛЕ. ьФП РПФПНХ, ЮФП ЛБЦДПЕ ЪОБЮЕОЙЕ РПЛБЪБОП РЕТЧЩК ТБЪ Ч ЛБЦДПН РУЕЧДПОЙНЕ, Й ЧФПТПК ТБЪ( УЙН- НЕФТЙЮОП) Ч РТЕДЙЛБФЕ. уМЕДПЧБФЕМШОП, ЪОБЮЕОЙЕ A Ч РУЕЧДПОЙНЕ УОБЮБМБ ЧЩВЙТБЕФУС Ч ЛПНВЙОБГЙЙ УП ЪОБЮЕОЙЕН B ЧП ЧФПТПН РУЕЧДПОЙНЕ, Б ЪБФЕН ЪОБЮЕОЙЕ A ЧП ЧФПТПН РУЕЧДПОЙНЕ ЧЩВЙТБЕФУС Ч ЛПНВЙОБГЙЙ УП ЪОБЮЕОЙЕН B Ч РЕТЧПН РУЕЧДПОЙНЕ. ч ОБЫЕН РТЙНЕТЕ, Hoffman ЧЩВТБМУС ЧНЕУФЕ У Clemens, Б ЪБФЕН Clemens ЧЩВТБМУС ЧНЕУФЕ У Hoffman. фПФ ЦЕ УБНЩК УМХЮБК У Cisneros Й Grass, Liu Й Giovanni, Й ФБЛ ДБМЕЕ. лТПНЕ ФПЗП ЛБЦДБС УФТПЛБ ВЩМБ УТБЧОЕОБ УБНБ У УПВПК, ЮФПВЩ ЧЩЧЕУФЙ УФТПЛЙ ФБЛЙЕ ЛБЛ - Liu Й Liu. рТПУФПК УРПУПВ ЙЪВЕЦБФШ ЬФПЗП УПУФoЙФ Ч ФПН, ЮФПВЩ ОБМБЗБФШ РПТСДПЛ ОБ ДЧБ ЪОБЮЕОЙС, ФБЛ ЮФПВЩ ПДЙО НПЗ ВЩФШ НЕОШЫЕ ЮЕН ДТХЗПК ЙМЙ РТЕДЫЕУФЧПЧБМ ЕНХ Ч БМЖБЧЙФОПН РПТСДЛЕ. ьФП ДЕМБЕФ РТЕДЙЛБФ БУЙННЕФТЙЮОЩН, РПЬФПНХ ФЕ ЦЕ УБНЩЕ ЪОБЮЕОЙС Ч ПВТБФОПН РПТСДЛЕ ОЕ ВХДХФ ЧЩВТБОЩ УОПЧБ, ОБРТЙНЕТ: SELECT tirst.cname, second.cname, first.rating FROM Customers first, Customers second WHERE first.rating = second.rating AND first.cname < second.cname; чЩЧПД ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 9.2. Hoffman РТЕДЫЕУФЧХЕФ Periera Ч БМЖБЧЙФОПН РПТСДЛЕ, РПЬФПНХ ЛПНВЙОБГЙС ХДПЧМЕФЧПТСЕФ ПВЕЙН ХУМПЧЙСН РТЕДЙЛБФБ Й РПСЧМСЕФУС Ч ЧЩЧПДЕ. лПЗДБ ФБ ЦЕ УБНБ ЛПНВЙОБГЙС РПСЧМСЕФУС Ч ПВТБФОПН РПТСДЛЕ - ЛПЗДБ Periera Ч РУЕЧДПОЙНЕ РЕТЧПК ФБВМЙГЩ УТБЧОЙЧБЕФУС У Hoffman ЧП ЧФПТПК ФБВМЙГЕ РУЕЧДПОЙНБ - ЧФПТПЕ ХУМПЧЙЕ ОЕ ЧУФТЕЮБЕФУС. бОБМПЗЙЮОП Hoffman ОЕ ЧЩВЙТБЕФУС РТЙ ОБМЙЮЙЙ ФПЗП ЦЕ ТЕКФЙОЗБ ЮФП Й ПО УБН РПФПНХ ЮФП ЕЗП ЙН ОЕ РТЕДЫЕУФЧХЕФ ЕНХ УБНПНХ Ч БМЖБЧЙФОПН РПТСДЛЕ. еУМЙ ВЩ ЧЩ ЪБИПФЕМЙ ЧЛМАЮЙФШ УТБЧОЕОЙЕ УФТПЛ У ОЙНЙ ЦЕ =============== SQL Execution Log ============== | | | SELECT first.cname, second.cname, first.rating | | FROM Customers first, Customers second | | WHERE first.rating = second.rating | | AND first.cname < second.cname | | =============================================== | | cname cname rating | | ------- --------- ------- | | Hoffman Pereira 100 | | Giovanni Liu 200 | | Clemens Hoffman 100 | | Pereira Pereira 100 | | Gisneros Grass 300 | ================================================= тЙУХОПЛ 9.2: хУФТБОЕОЙЕ ЙЪВЩФПЮОПУФЙ ЧЩЧПДБ Ч ПВЯЕДЙОЕОЙЙ У УПВПК. Ч ЪБРТПУБИ РПДПВОП ЬФПНХ, ЧЩ НПЗМЙ ВЩ РТПУФП ЙУРПМШЪПЧБФШ < = ЧНЕУФП second.snum; иПФС ЬФП ЧЩЗМСДЙФ УМПЦОП, МПЗЙЛБ ЬФПК ЛПНБОДЩ ДПУФБФПЮОП РТПУФБ. пОБ ВХДЕФ ВТБФШ РЕТЧХА УФТПЛХ ФБВМЙГЩ рПТСДЛПЧ, ЪБРПНЙОБФШ ЕЕ РПД РЕТЧЩН РУЕЧДПОЙНПН, Й РТПЧЕТСФШ ЕЕ Ч ЛПНВЙОБГЙЙ У ЛБЦДПК УФТПЛПК ФБВМЙГЩ рПТСДЛПЧ РПД ЧФПТЩН РУЕЧДПОЙНПН, ПДОХ ЪБ ДТХЗПК. еУМЙ ЛПНВЙОБГЙС УФТПЛ ХДПЧМЕФЧПТСЕФ РТЕДЙЛБФХ, ПОБ ЧЩВЙТБЕФУС ДМС ЧЩЧПДБ. ч ЬФПН УМХЮБЕ РТЕДЙЛБФ ВХДЕФ ТБУУНБФТЙЧБФШ ЬФХ УФТПЛХ, ОБКДЕФ УФТПЛХ ЗДЕ РПМЕ cnum=2008 Б РПМЕ snum=1007, Й ЪБФЕН ТБУУНПФТЙФ ЛБЦДХА УМЕДХАЭХА УФТПЛХ У ФЕН ЦЕ УБНЩН ЪОБЮЕОЙЕН РПМ cnum. еУМЙ ПО ОБИПДЙФ ЮФП ЛБЛБС -ФП ЙЪ ЙИ ЙНЕЕФ ЪОБЮЕОЙЕ ПФМЙЮОПЕ ПФ ЪОБЮЕОЙС РПМ snum, РТЕДЙЛБФ ВХДЕФ ЧЕТЕО, Й ЧЩЧЕДЕФ ЧЩВТБООЩЕ РПМ ЙЪ ФЕЛХЭЕК ЛПНВЙОБГЙЙ УФТПЛ. еУМЙ ЦЕ ЪОБЮЕОЙЕ snum У ДБООЩН ЪОБЮЕОЙЕН cnum Ч ОБЫ ФБВМЙГЕ УПЧ- РБДБЕФ, ЬФБ ЛПНБОДБ ОЕ РТПЙЪЧЕДЕФ ОЙЛБЛПЗП ЧЩЧПДБ. впмшые руечдпойнпч иПФС ПВЯЕДЙОЕОЙЕ ФБВМЙГЩ У УПВПК - ЬФП РЕТЧБС УЙФХБГЙС ЛПЗДБ РПОСФОП ЮФП РУЕЧДПОЙНЩ ОЕПВИПДЙНЩ, ЧЩ ОЕ ПЗТБОЙЮЕОЩ Ч ЙИ ЙУРПМШЪПЧБОЙЙ ЮФП ВЩ ФПМШЛП ПФМЙЮБФШ ЛПРЙА ПДОПК ФБВМЙГЩ ПФ ЕЕ ПТЙЗЙОБМБ. чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ РУЕЧДПОЙНЩ Ч МАВПЕ ЧТЕН ЛПЗДБ ЧЩ ИПФЙФЕ УПЪДБФШ БМШФЕТОБФЙЧОЩЕ ЙНЕОБ ДМС ЧБЫЙИ ФБВМЙГ Ч ЛПНБОДЕ. оБРТЙНЕТ, ЕУМЙ ЧБЫЙ ФБВМЙГЩ ЙНЕАФ ПЮЕОШ ДМЙООЩЕ Й УМПЦОЩЕ ЙНЕОБ, ЧЩ НПЗМЙ ВЩ ПРТЕДЕМЙФШ РТПУФЩЕ ПДОПУЙНЧПМШОЩЕ РУЕЧДПОЙНЩ, ФЙРБ a Й b, Й ЙУРПМШЪПЧБФШ ЙИ ЧНЕУФП ЙНЕО ФБВМЙГЩ Ч РТЕДМПЦЕОЙЙ SELECT Й РТЕДЙЛБФЕ. пОЙ ВХДХФ ФБЛЦЕ ЙУРПМШЪПЧБФШУС У УППФОЕУЕООЩНЙ РПДЪБРТПУБНЙ(ПВУХЦДБЕНЩНЙ Ч зМБЧЕ 11). еэе впмшые лпнрмелуощи пвяедйоеойк чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ МАВПЕ ЮЙУМП РУЕЧДПОЙНПЧ ДМС ПДОПК ФБВМЙГЩ Ч ЪБРТПУЕ, ИПФС ЙУРПМШЪПЧБОЙЕ ВПМЕЕ ДЧХИ Ч ДБООПН РТЕДМПЦЕОЙЙ SELECT * ВХДЕФ ЙЪМЙЫЕУФЧПН. рТЕДРПМПЦЙН ЮФП ЧЩ ЕЭЕ ОЕ ОБЪОБЮЙМЙ ЧБЫЙИ ЪБЛБЪЮЙЛПЧ Л ЧБЫЕНХ РТПДБЧГХ. лПНРБОЙЙ ДПМЦОБ ОБЪОБЮЙФШ ЛБЦДПНХ РТПДБЧГХ РЕТЧПОБЮБМШОП ФТЕИ ЪБЛБЪЮЙЛПЧ, РП ПДОПНХ ДМС ЛБЦДПЗП ТЕКФЙОЗПЧПЗП ЪОБЮЕОЙС. чЩ МЙЮОП НПЦЕФЕ ТЕЫЙФШ ЛБЛПЗП ЪБЛБЪЮЙЛБ ЛБЛПНХ РТПДБЧГХ ОБЪОБЮЙФШ, ОП УМЕДХАЭЙК ЪБРТПУ ЧЩ ЙУРПМШЪХЕФЕ ЮФПВЩ ХЧЙДЕФШ ЧУЕ ЧПЪНПЦОЩЕ ЛПНВЙОБГЙЙ ЪБЛБЪЮЙЛПЧ ЛПФПТЩИ ЧЩ НПЦЕФЕ ОБЪОБЮБФШ. ( чЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 9.3 ): SELECT a.cnum, b.cnum, c.cnum FROM Customers a, Customers b, Customers c WHERE a.rating = 100 AND b.rating = 200 AND c.rating = 300; =============== SQL Execution Log ============== | | | AND c.rating = 300; | | =============================================== | | cnum cnum cnum | | ----- ------ ------ | | 2001 2002 2004 | | 2001 2002 2008 | | 2001 2003 2004 | | 2001 2003 2008 | | 2006 2002 2004 | | 2006 2002 2008 | | 2006 2003 2004 | | 2006 2003 2008 | | 2007 2002 2004 | | 2007 2002 2008 | | 2007 2003 2004 | | 2007 2003 2008 | ================================================= тЙУХОПЛ 9.3 лПНВЙОБГЙС РПМШЪПЧБФЕМЕК У ТБЪМЙЮОЩНЙ ЪОБЮЕОЙСНЙ ТЕКФЙОЗБ лБЛ ЧЩ НПЦЕФЕ ЧЙДЕФШ, ЬФПФ ЪБРТПУ ОБИПДЙФ ЧУЕ ЛПНВЙОБГЙЙ ЪБЛБЪЮЙЛПЧ У ФТЕН ЪОБЮЕОЙСНЙ ПГЕОЛЙ, РПЬФПНХ РЕТЧЩК УФПМВЕГ УПУФПЙФ ЙЪ ЪБЛБЪЮЙЛПЧ У ПГЕОЛПК 100, ЧФПТПК У 200, Й РПУМЕДОЙК У ПГЕОЛПК 300. пОЙ РПЧФПТСАФУС ЧП ЧУЕИ ЧПЪНПЦОЩИ ЛПНВЙОБГЙСИ. ьФП - УПТФЙТПЧЛБ ЗТХРРЙТПЧЛЙ ЛПФПТБС ОЕ НПЦЕФ ВЩФШ ЧЩРПМОЕОБ У GROUP BY ЙМЙ ORDER BY, РПУЛПМШЛХ ПОЙ УТБЧОЙЧБАФ ЪОБЮЕОЙС ФПМШЛП Ч ПДОПН УФПМВГЕ ЧЩЧПДБ. чЩ ДПМЦОЩ ФБЛЦЕ РПОЙНБФШ, ЮФП ОЕ ЧУЕЗДБ ПВСЪБФЕМШОП ЙУРПМШЪПЧБФШ ЛБЦДЩК РУЕЧДПОЙН ЙМЙ ФБВМЙГХ ЛПФПТЩЕ ХРПНСОХФЩ Ч РТЕДМПЦЕОЙЙ FROM ЪБРТПУБ, Ч РТЕДМПЦЕОЙЙ SELECT. йОПЗДБ, РТЕДМПЦЕОЙЕ ЙМЙ ФБВМЙГБ УФБОПЧСФУС ЪБРТБЫЙЧБЕНЩНЙ ЙУЛМАЮЙФЕМШОП РПФПНХ ЮФП ПОЙ НПЗХФ ЧЩЪЩЧБФШУС Ч РТЕДЙЛБФЕ ЪБРТПУБ. оБРТЙНЕТ, УМЕДХАЭЙК ЪБРТПУ ОБИПДЙФ ЧУЕИ ЪБЛБЪЮЙЛПЧ ТБЪНЕЭЕООЩИ Ч ЗПТПДБИ ЗДЕ РТПДБЧЕГ Serres ( snum 1002 ) ЙНЕЕФ ЪБЛБЪЮЙЛПЧ ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 9.4 ): SELECT b.cnum, b.cname FROM Customers a, Customers b WHERE a.snum = 1002 AND b.city = a.city; =============== SQL Execution Log ============ | | | SELECT b.cnum, b.cname | | FROM Customers a, Customers b | | WHERE a.snum = 1002 | | AND b.city = a.city; | | ==============================================| | cnum cname | | ------ --------- | | 2003 Liu | | 2008 Cisneros | | 2004 Grass | ============================================= тЙУХОПЛ 9.4 оБИПЦДЕОЙЕ ЪБЛБЪЮЙЛПЧ Ч ЗПТПДБИ ПФОПУСЭЙИУС Л Serres. рУЕЧДПОЙН a ВХДЕФ ДЕМБФШ РТЕДЙЛБФ ОЕЧЕТОЩН ЪБ ЙУЛМАЮЕОЙЕН УМХЮБС ЛПЗДБ ЕЗП ЪОБЮЕОЙЕ УФПМВГБ snum = 1002. фБЛЙН ПВТБЪПН РУЕЧДПОЙН ПРХУЛБЕФ ЧУЕ, ЛТПНЕ ЪБЛБЪЮЙЛПЧ РТПДБЧГБ Serres. рУЕЧДПОЙН b ВХДЕФ ЧЕТОЩН ДМС ЧУЕИ УФТПЛ У ФЕН ЦЕ УБНЩН ЪОБЮЕОЙЕН ЗПТПДБ ЮФП Й ФЕЛХЭЕЕ ЪОБЮЕОЙЕ ЗПТПДБ ДМС a; Ч ИПДЕ ЪБРТПУБ, УФТПЛБ РУЕЧДПОЙНБ b ВХДЕФ ЧЕТОБ ПДЙО ТБЪ ЛПЗДБ ЪОБЮЕОЙЕ ЗПТПДБ РТЕДУФБЧМЕОП Ч a. оБИПЦДЕОЙЕ ЬФЙИ УФТПЛ РУЕЧДПОЙНБ b - ЕДЙОУФЧЕООБС ГЕМШ РУЕЧДПОЙНБ a, РПЬФПНХ НЩ ОЕ ЧЩВЙТБЕН ЧУЕ УФПМВГЩ РПДТСД. лБЛ ЧЩ НПЦЕФЕ ЧЙДЕФШ, УПВУФЧЕООЩЕ ЪБЛБЪЮЙЛЙ Serres ЧЩВЙТБАФУС РТЙ ОБИПЦДЕОЙЙ ЙИ Ч ФПН ЦЕ УБНПН ЗПТПДЕ ЮФП Й ПО УБН, РПЬФПНХ ЧЩВПТ ЙИ ЙЪ РУЕЧДПОЙНБ a ОЕПВСЪБФЕМЕО. лПТПЮЕ ЗПЧПТС, РУЕЧДПОЙН ОБИПДЙФ УФТПЛЙ ЪБЛБЪЮЙЛПЧ Serres, Liu Й Grass. рУЕЧДПОЙН b ОБИПДЙФ ЧУЕИ ЪБЛБЪЮЙЛПЧ ТБЪНЕЭЕООЩИ Ч МАВПН ЙЪ ЙИ ЗПТПДПЧ ( San Jose Й Berlin УППФЧЕФУФЧЕООП ) ЧЛМАЮБС, ЛПОЕЮОП, УБНЙИ - Liu Й Grass. чЩ НПЦЕФЕ ФБЛЦЕ УПЪДБФШ ПВЯЕДЙОЕОЙЕ ЛПФПТПЕ ЧЛМАЮБЕФ Й ТБЪМЙЮОЩЕ ФБВМЙГЩ Й РУЕЧДПОЙНЩ ПДЙОПЮОПК ФБВМЙГЩ. уМЕДХАЭЙК ЪБРТПУ ПВЯЕДЙОСЕФ ФБВМЙГХ рПМШЪПЧБФЕМЕК У УПВПК: ЮФПВЩ ОБКФЙ ЧУЕ РБТЩ ЪБЛБЪЮЙЛПЧ ПВУМХЦЙЧБЕНЩИ ПДОЙН РТПДБЧГПН. ч ФП ЦЕ УБНПЕ ЧТЕН, ЬФПФ ЪБРТПУ ПВЯЕДЙОСЕФ ЪБЛБЪЮЙЛБ У ФБВМЙГЕК рТПДБЧГПЧ У ЙНЕОЕН ЬФПЗП РТПДБЧГБ ( ЧЩЧПД РПЛБЪБО ОБ тЙУХОЛЕ 9.5 ): SELECT sname, Salespeople.snum, first.cname second.cname FROM Customers first, Customers second, Salespeople WHERE first.snum = second.snum AND Salespeople.snum = first.snum AND first.cnum < second.cnum; =============== SQL Execution Log ================== | | | SELECT cname, Salespeople.snum, first.cname | | second.cname | | FROM Customers first, Customers second, Salespeople | | WHERE first.snum = second.snum | | AND Salespeople.snum = first.snum | | AND first.cnum < second.cnum; | | ====================================================| | cname snum cname cname | | ------ ------ -------- -------- | | Serres 1002 Liu Grass | | Peel 1001 Hoffman Clemens | ===================================================== тЙУХОПЛ 9.5: пВЯЕДЙОЕОЙЕ ФБВМЙГЩ У УПВПК Й У ДТХЗПК ФБВМЙГЕК теъане фЕРЕТШ чЩ РПОЙНБЕФЕ ЧПЪНПЦОПУФЙ ПВЯЕДЙОЕОЙС Й НПЦЕФЕ ЙУРПМШЪПЧБФШ ЙИ ДМС ПЗТБОЙЮЕОЙС УЧСЪЕК У ФБВМЙГЕК, НЕЦДХ ТБЪМЙЮОЩНЙ ФБВМЙГБНЙ, ЙМЙ Ч ПВПЙИ УМХЮБСИ. чЩ НПЗМЙ ЧЙДЕФШ ОЕЛПФПТЩЕ ЧПЪНПЦОПУФЙ ПВЯЕДЙОЕОЙС РТЙ ЙУРПМШЪПЧБОЙЙ ЕЗП УРПУПВОПУФЕК. чЩ ФЕРЕТШ РПЪОБЛПНЙМЙУШ У ФЕТНЙОБНЙ РПТСДЛПЧЩЕ РЕТЕНЕООЩЕ, ЛПТТЕМСГЙПООЩЕ РЕТЕНЕООЩЕ Й РТЕДМПЦЕОЙС (ЬФБ ФЕТНЙОПМПЗЙС ВХДЕФ НЕОСФШУС ПФ ЙЪДЕМЙС Л ЙЪДЕМЙА, ФБЛ ЮФП НЩ РТЕДМБЗБЕН чБН РПЪОБЛПНЙФУС УП ЧУЕНЙ ФТЕН ФЕТНЙОБНЙ ). лТПНЕ ФПЗП чЩ РПОСМЙ, ОЕНОПЗП, ЛБЛ Ч ДЕКУФЧЙФЕМШОПУФЙ ТБВПФБАФ ЪБРТПУЩ. уМЕДХАЭЙН ЫБЗПН РПУМЕ ЛПНВЙОБГЙЙ НОПЗПЮЙУМЕООЩИ ФБВМЙГ ЙМЙ НОПЗПЮЙУМЕООЩИ ЛПРЙК ПДОПК ФБВМЙГЩ Ч ЪБРТПУЕ, ВХДЕФ ЛПНВЙОБГЙС НОПЗПЮЙУМЕООЩИ ЪБРТПУПЧ, ЗДЕ ПДЙО ЪБРТПУ ВХДЕФ РТПЙЪЧПДЙФШ ЧЩЧПД ЛПФПТЩК ВХДЕФ ЪБФЕН ХРТБЧМСФШ ТБВПФПК ДТХЗПЗП ЪБРТПУБ. ьФП ДТХЗПЕ НПЭОПЕ УТЕДУФЧП SQL, П ЛПФПТПН НЩ ТБУУЛБЦЕН Ч зМБЧЕ 10 Й ВПМЕЕ ФЭБФЕМШОП Ч РПУМЕДХАЭЙИ ЗМБЧБИ. тбвпфб у SQL 1. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ВЩ ЧЩЧЕМ ЧУЕ РБТЩ РТПДБЧГПЧ ЦЙЧХЭЙИ Ч ПДОПН Й ФПН ЦЕ ЗПТПДЕ. йУЛМАЮЙФЕ ЛПНВЙОБГЙЙ РТПДБЧГПЧ У ОЙНЙ ЦЕ, Б ФБЛЦЕ ДХВМЙЛБФЩ УФТПЛ ЧЩЧПДЙНЩИ Ч ПВТБФОЩН РПТСДЛЕ. 2. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩЧЕМ ВЩ ЧУЕ РБТЩ РПТСДЛПЧ РП ДБООЩН ЪБЛБЪЮЙЛБН, ЙНЕОБН ЬФЙИ ЪБЛБЪЮЙЛПЧ, Й ЙУЛМАЮБМ ДХВМЙЛБФЩ ЙЪ ЧЩЧПДБ, ЛБЛ Ч РТЕДЩДХЭЕН ЧПРТПУЕ. 3. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩЧЕМ ВЩ ЙНЕОБ(cname) Й ЗПТПДБ(city) ЧУЕИ ЪБЛБЪЮЙЛПЧ У ФБЛПК ЦЕ ПГЕОЛПК(rating) ЛБЛ Х HoffmanБ. оБРЙЫЙФЕ ЪБРТПУ ЙУРПМШЪХАЭЙК РПМЕ cnum HoffmanБ Б ОЕ ЕЗП ПГЕОЛХ, ФБЛ ЮФПВЩ ПОП НПЗМП ВЩФШ ЙУРПМШЪПЧБОП ЕУМЙ ЕЗП ПГЕОЛБ ЧДТХЗ ЙЪНЕОЙФУС. ( уН. рТЙМПЦЕОЙЕ A ДМС ПФЧЕФПЧ. )

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