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

Understanding SQL. Chapter 7. жптнйтпчбойе чщчпдпч ъбртпупч ьфб змбчб тбуыйтйф чбый чпънпцопуфй Ч ТБВПФЕ У ЧЩЧПДПН ЛПФПТЩК РТПЙЪЧПДЙФ ЪБРТПУ. чЩ ХЪОБЕФЕ ЛБЛ ЧУФБЧМСФШ ФЕЛУФ Й ЛПОУФБОФЩ НЕЦДХ ЧЩВТБООЩИ РПМЕК, ЛБЛ ЙУРПМШЪПЧБФШ ЧЩВТБООЩЕ РПМ Ч НБФЕНБФЙЮЕУЛЙИ ЧЩТБЦЕОЙСИ, ЮШЙ ТЕЪХМШФБФЩ ЪБФЕН УФБОПЧСФУС ЧЩЧПДПН, Й ЛБЛ УДЕМБФШ ЮФПВЩ ЧБЫЙ ЪОБЮЕОЙС ЧЩЧПДЙМЙУШ Ч ПРТЕДЕМЕООПН РПТСДЛЕ. ьФБ РПУМЕДОСС ПУПВЕООПУФШ ЧЛМАЮЕОБ, ЮФПВЩ ХРПТСДПЮЙЧБФШ ЧБЫ ЧЩЧПД РП МАВЩН УФПМВГБН, МАВЩН РПМХЮЕООЩН ЪОБЮЕОЙСН ЬФПЗП УФПМВГБ, ЙМЙ РП ПВЕЙН. уфтплй й чщтбцеойс вПМШЫЙОУФЧП ПУОПЧБООЩИ ОБ SQL ВБЪ ДБООЩИ РТЕДПУФБЧМСАФ УРЕГЙБМШОЩЕ УТЕДУФЧБ РПЪЧПМСАЭЙЕ чБН УПЧЕТЫЕОУФЧПЧБФШ ЧЩЧПД ЧБЫЙИ ЪБРТПУПЧ. лПОЕЮОП, ПОЙ РТЕФЕТРЕЧБАФ ЪОБЮЙФЕМШОЩЕ ЙЪНЕОЕОЙС ПФ РТПЗТБННЩ Л РТПЗТБННЕ, Й ЙИ ПВУХЦДЕОЙЕ ЪДЕУШ ОЕ ЧИПДЙФ Ч ОБЫЙ ЪБДБЮЙ, ПДОБЛП, ЙНЕАФУС РСФШ ПУПВЕООПУФЕК УПЪДБООЩИ Ч УФБОДБТФЕ SQL ЛПФПТЩЕ РПЪЧПМСАФ ЧБН ДЕМБФШ ВПМШЫЕ ЮЕН РТПУФП ЧЩЧПД ЪОБЮЕОЙК РПМЕК Й БЗТЕЗБФОЩИ ДБООЩИ. улбмстопе чщтбцеойе у рпнпэша чщвтбоощи рпмек рТЕДРПМПЦЙН ЮФП ЧЩ ИПФЙФЕ ЧЩРПМОСФШ РТПУФЩЕ ЮЙУМПЧЩЕ ЧЩЮЙУМЕОЙС ДБООЩИ ЮФПВЩ ЪБФЕН РПНЕЭБФШ ЙИ Ч ЖПТНХ ВПМШЫЕ УППФЧЕФУФЧХАЭХА ЧБЫЙН РПФТЕВОПУФСН. SQL РПЪЧПМСЕФ ЧБН РПНЕЭБФШ УЛБМСТОЩЕ ЧЩТБЦЕОЙС Й ЛПОУФБОФЩ УТЕДЙ ЧЩВТБООЩИ РПМЕК. ьФЙ ЧЩТБЦЕОЙС НПЗХФ ДПРПМОСФШ ЙМЙ ЪБНЕЭБФШ РПМС Ч РТЕДМПЦЕОЙСИ SELECT, Й НПЗХФ ЧЛМАЮБФШ Ч УЕВС ПДОП ЙМЙ ВПМЕЕ ЧЩВТБООЩИ РПМЕК. оБРТЙНЕТ, ЧЩ НПЦЕФЕ РПЦЕМБФШ, РТЕДУФБЧЙФШ ЛПНЙУУЙПООЩЕ ЧБЫЕЗП РТПДБЧГБ Ч РТПГЕОФОПН ПФОПЫЕОЙЙ Б ОЕ ЛБЛ ДЕУСФЙЮОЩЕ ЮЙУМБ. рТПУФП ДПУФБФПЮОП: SELECT snum, sname, city, comm * 100 FROM Salespeople; чЩЧПД ЙЪ ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 7.1. уфпмвгщ чщчпдб рПУМЕДОЙК УФПМВЕГ РТЕДЫЕУФЧХАЭЕЗП РТЙНЕТБ ОЕРПНЕЮЕО( Ф.Е. ВЕЪ ОБЙНЕОПЧБОЙС), РПФПНХ ЮФП ЬФП - УФПМВЕГ ЧЩЧПДБ. уФПМВГЩ ЧЩЧПДБ - ЬФП УФПМВГЩ ДБООЩИ УПЪДБООЩЕ ЪБРТПУПН УРПУПВПН, ЙОЩН ЮЕН РТПУФП ЙЪЧМЕЮЕОЙЕ ЙИ ЙЪ ФБВМЙГЩ. чЩ УПЪДБЕФЕ ЙИ ЧУСЛЙК ТБЪ, ЛПЗДБ ЧЩ ЙУРПМШЪХЕФЕ БЗТЕЗБФОЩЕ ЖХОЛГЙЙ =============== SQL Execution Log ============ | | | SELECT snum, sname, city, comm * 100 | | FROM Salespeople; | | ==============================================| | snum sname city | | ------ --------- ----------- --------- | | 1001 Peel London 12.000000 | | 1002 Serres San Jose 13.000000 | | 1004 Motika London 11.000000 | | 1007 Rifkin Barcelona 15.000000 | | 1003 Axelrod New York 10.000000 | | | =============================================== тЙУХОПЛ 7.1: рПНЕЭЕОЙЕ ЧЩТБЦЕОЙС Ч ЧБЫЕН ЪБРТПУЕ , ЛПОУФБОФЩ, ЙМЙ ЧЩТБЦЕОЙС Ч РТЕДМПЦЕОЙЙ SELECT ЪБРТПУБ. фБЛ ЛБЛ ЙН УФПМВГБ - ПДЙО ЙЪ БФТЙВХФПЧ ФБВМЙГЩ, УФПМВГЩ ЛПФПТЩЕ РТЙИПДСФ ОЕ ЙЪ ФБВМЙГ ОЕ ЙНЕАФ ОЙЛБЛЙИ ЙНЕО. дТХЗЙНЙ УМПЧБНЙ ОЕРПНЕЮЕООЩЕ, УФПМВГЩ ЧЩЧПДБ НПЗХФ ПВТБВБФЩЧБФШУС ФБЛЦЕ ЛБЛ Й УФПМВГЩ ЙЪЧМЕЮЕООЩЕ ЙЪ ФБВМЙГ, РПЮФЙ ЧП ЧУЕИ УЙФХБГЙСИ. рпнеэеойе фелуфб ч чбыен чщчпде ъбртпуб уЙНЧПМ 'A', ЛПЗДБ ОЙЮЕЗП ОЕ ЪОБЮЙФ УБН РП УЕВЕ, - СЧМСЕФУС ЛПОУФБОФПК, ФБЛПК ОБРТЙНЕТ ЛБЛ ЮЙУМП 1. чЩ НПЦЕФЕ ЧУФБЧМСФШ ЛПОУФБОФЩ Ч РТЕДМПЦЕОЙЕ SELECT ЪБРТПУБ, ЧЛМАЮБС Й ФЕЛУФ. пДОБЛП УЙНЧПМШОЩЕ ЛПОУФБОФЩ, Ч ПФМЙЮЙЕ ПФ ЮЙУМПЧЩИ ЛПОУФБОФ, ОЕ НПЗХФ ЙУРПМШЪПЧБФШУС Ч ЧЩТБЦЕОЙСИ. чЩ НПЦЕФЕ ЙНЕФШ ЧЩТБЦЕОЙЕ 1 + 2 Ч ЧБЫЕН РТЕДМПЦЕОЙЙ SELECT, ОП ЧЩ ОЕ НПЦЕФЕ ЙУРПМШЪПЧБФШ ЧЩТБЦЕОЙЕ ФЙРБ 'A' + 'B'; ЬФП РТЙЕНМЕНП ФПМШЛП ЕУМЙ НЩ ЙНЕЕН Ч ЧЙДХ ЮФП 'A' Й 'B' ЬФП РТПУФП ВХЛЧЩ, Б ОЕ РЕТЕНЕООЩЕ Й ОЕ УЙНЧПМЩ. фЕН ОЙ НЕОЕЕ, ЧПЪНПЦОПУФШ ЧУФБЧМСФШ ФЕЛУФ Ч ЧЩЧПД ЧБЫЙИ ЪБРТПУПЧ ПЮЕОШ ХДПВОБС ЫФХЛБ. чЩ НПЦЕФЕ ХУПЧЕТЫЕОУФЧПЧБФШ РТЕДЩДХЭЙК РТЙНЕТ РТЕДУФБЧЙЧ ЛПНЙУУЙПООЩЕ ЛБЛ РТПГЕОФЩ УП ЪОБЛПН РТПГЕОФБ (%). ьФП ДБУФ ЧБН ЧПЪНПЦОПУФШ РПНЕЭБФШ Ч ЧЩЧПД ФБЛЙЕ ЕДЙОЙГЩ ЛБЛ УЙНЧПМЩ Й ЛПННЕОФБТЙЙ, ЛБЛ ОБРТЙНЕТ Ч УМЕДХАЭЕН РТЙНЕТЕ ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 7.2 ) SELECT snum, sname, city, ' % ', comm * 100 FROM Salespeople; =============== SQL Execution Log ============ | | | SELECT snum, sname, city, '%' comm * 100 | | FROM Salespeople; | | ==============================================| | snum sname city | | ------ -------- ----------- ---- --------- | | 1001 Peel London % 12.000000 | | 1002 Serres San Jose % 13.000000 | | 1004 Motika London % 11.000000 | | 1007 Rifkin Barcelona % 15.000000 | | 1003 Axelrod New York % 10.000000 | | | =============================================== тЙУХОПЛ 7.2: чУФБЧЛБ УЙНЧПМПЧ Ч ЧБЫ ЧЩЧПД пВТБФЙФЕ ЧОЙНБОЙЕ ЮФП РТПВЕМ РЕТЕД РТПГЕОФПН ЧУФБЧМСЕФУС ЛБЛ ЮБУФШ УФТПЛЙ. ьФБ ЦЕ УБНБ ПУПВЕООПУФШ НПЦЕФ ЙУРПМШЪПЧБФШУС ЮФПВЩ НБТЛЙТПЧБФШ ЧЩЧПД ЧНЕУФЕ У ЧУФБЧМСЕНЩНЙ ЛПННЕОФБТЙСНЙ. чЩ ДПМЦОЩ РПНОЙФШ, ЮФП ЬФПФ ЦЕ УБНЩК ЛПННЕОФБТЙК ВХДЕФ ОБРЕЮБФБО Ч ЛБЦДПК УФТПЛЕ ЧЩЧПДБ, Б ОЕ РТПУФП ПДЙО ТБЪ ДМС ЧУЕК ФБВМЙГЩ. рТЕДРПМПЦЙН ЮФП ЧЩ ЗЕОЕТЙТХЕФЕ ЧЩЧПД ДМС ПФЮЕФБ ЛПФПТЩК ВЩ ХЛБЪЩЧБМ ЮЙУМП РПТСДЛПЧ РПМХЮБЕНЩИ Ч ФЕЮЕОЙЕ ЛБЦДПЗП ДОС. чЩ НПЦЕФЕ РТПНБТЛЙТПЧБФШ ЧБЫ ЧЩЧПД ( УН. тЙУХОПЛ 7.3 ) УЖПТНЙТПЧБЧ ЪБРТПУ УМЕДХАЭЙН ПВТБЪПН: SELECT ' For ', odate, ', there are ', COUNT ( DISTINCT onum ), 'orders.' FROM Orders GROUP BY odate; зТБННБФЙЮЕУЛПК ОЕЛПТТЕЛФОПУФЙ ЧЩЧПДБ, ОБ 5 пЛФСВТС, ОЕЧПЪНПЦОП ЙЪВЕЦБФШ ОЕ УПЪДБЧ ЪБРТПУБ, ЕЭЕ ВПМЕЕ УМПЦОПЗП ЮЕН ЬФПФ. ( чЩ ВХДЕФЕ ДПМЦОЩ ЙУРПМШЪПЧБФШ ДЧБ ЪБРТПУБ У UNION, ЛПФПТЩК =============== SQL Execution Log ============== | | | SELECT 'For', odate, ', ' there are ' , | | COUNT (DISTINCT onum), ' orders ' | | FROM Orders | | GROUP BY odate; | | =============================================== | | odate | | ------ ---------- --------- ------ ------- | | For 10/03/1990 , there are 5 orders. | | For 10/04/1990 , there are 2 orders. | | For 10/05/1990 , there are 1 orders. | | For 10/06/1990 , there are 2 orders. | | | ================================================ тЙУХОПЛ 7.3: лПНВЙОБГЙС ФЕЛУФБ, ЪОБЮЕОЙК РПМС, Й БЗТЕЗБФПЧ НЩ ВХДЕН ПРЙУЩЧБФШ Ч зМБЧЕ 14. ) лБЛ ЧЩ НПЦЕФЕ ЧЙДЕФШ, ПДЙОПЮОЩК ОЕЙЪНЕООЩК ЛПННЕОФБТЙК ДМС ЛБЦДПК УФТПЛЙ ФБВМЙГЩ НПЦЕФ ВЩФШ ПЮЕОШ РПМЕЪЕО, ОП ЙНЕЕФ ПЗТБОЙЮЕОЙС. йОПЗДБ ЙЪСЭОЕЕ Й РПМЕЪОЕЕ, РТПЙЪЧЕУФЙ ПДЙО ЛПННЕОФБТЙК ДМС ЧУЕЗП ЧЩЧПДБ Ч ГЕМПН, ЙМЙ РТПЙЪЧПДЙФШ УЧПК УПВУФЧЕООЩК ЛПННЕОФБТЙЙ ДМС ЛБЦДПК УФТПЛЙ. тБЪМЙЮОЩЕ РТПЗТБННЩ ЙУРПМШЪХАЭЙЕ SQL ЮБУФП ПВЕУРЕЮЙЧБАФ УРЕГЙБМШОЩЕ УТЕДУФЧБ ФЙРБ ЗЕОЕТБФПТБ ПФЮЕФПЧ( ОБРТЙНЕТ Report Writer), ЛПФПТЩЕ ТБЪТБВПФБОЩ ЮФПВЩ ЖПТНБФЙТПЧБФШ Й УПЧЕТЫЕОУФЧПЧБФШ ЧЩЧПД. чМПЦЕООЩК SQL НПЦЕФ ФБЛЦЕ ЬЛУРМХБФЙТПЧБФШ ЧПЪНПЦОПУФЙ ФПЗП СЪЩЛБ Ч ЛПФПТЩК ПО ЧМПЦЕО. SQL УБН РП УЕВЕ ЙОФЕТЕУЕО РТЕЦДЕ ЧУЕЗП РТЙ ПРЕТБГЙСИ У ДБООЩНЙ. чЩЧПД, РП УХЭЕУФЧХ, ЬФП ЙОЖПТНБГЙС, Й РТПЗТБННБ ЙУРПМШЪХАЭБС SQL НПЦЕФ ЮБУФП ЙУРПМШЪПЧБФШ ЬФХ ЙОЖПТНБГЙА Й РПНЕЭБФШ ЕЕ Ч ВПМЕЕ РТЙЧМЕЛБФЕМШОХА ЖПТНХ. ьФП, ПДОБЛП, ЧОЕ УЖЕТЩ УБНПК SQL. хрптсдпюеойе чщчпдб рпмек лБЛ НЩ РПДЮЕТЛЙЧБМЙ, ФБВМЙГЩ - ЬФП ОЕХРПТСДПЮЕООЩЕ ОБВПТЩ ДБООЩИ, Й ДБООЩЕ ЛПФПТЩЕ ЧЩИПДСФ ЙЪ ОЙИ, ОЕ ПВСЪБФЕМШОП РПСЧМСАФУС Ч ЛБЛПК-ФП ПРТЕДЕМЕООПК РПУМЕДПЧБФЕМШОПУФЙ. SQL ЙУРПМШЪХЕФ ЛПНБОДХ ORDER BY ЮФПВЩ РПЪЧПМСФШ ЧБН ХРПТСДПЮЙЧБФШ ЧБЫ ЧЩЧПД. ьФБ ЛПНБОДБ ХРПТСДПЮЙЧБЕФ ЧЩЧПД ЪБРТПУБ УПЗМБУОП ЪОБЮЕОЙСН Ч ФПН ЙМЙ ЙОПН ЛПМЙЮЕУФЧЕ ЧЩВТБООЩИ УФПМВГПЧ. нОПЗПЮЙУМЕООЩЕ УФПМВГЩ ХРПТСДПЮЙЧБАФУС ПДЙО ЧОХФТЙ ДТХЗПЗП, ФБЛЦЕ ЛБЛ У GROUP BY, Й ЧЩ НПЦЕФЕ ПРТЕДЕМСФШ ЧПЪТБУФБОЙЕ ( ASC ) ЙМЙ ХВЩЧБОЙЕ ( DESC ) ДМС ЛБЦДПЗП УФПМВГБ. рП ХНПМЮБОЙА ХУФБОПЧМЕОП - ЧПЪТБУФБОЙЕ. дБЧБКФЕ ТБУУНПФТЙН ОБЫХ ФБВМЙГХ РПТСДЛБ РТЙЧПДЙНХА Ч РПТСДПЛ У РПНПЭША ОПНЕТБ ЪБЛБЪЮЙЛБ ( ПВТБФЙФЕ ЧОЙНБОЙЕ ОБ ЪОБЮЕОЙС Ч cnum УФПМВГЕ): SELECT * FROM Orders ORDER BY cnum DESC; чЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 7.4. =============== SQL Execution Log ============== | | | SELECT * | | FROM Orders | | ORDER BY cnum DESC; | | =============================================== | | onum amt odate cnum snum | | ------ -------- ---------- ----- ----- | | 3001 18.69 10/03/1990 2008 1007 | | 3006 1098.16 10/03/1990 2008 1007 | | 3002 1900.10 10/03/1990 2007 1004 | | 3008 4723.00 10/05/1990 2006 1001 | | 3011 9891.88 10/06/1990 2006 1001 | | 3007 75.75 10/04/1990 2004 1002 | | 3010 1309.95 10/06/1990 2004 1002 | | 3005 5160.45 10/03/1990 2003 1002 | | 3009 1713.23 10/04/1990 2002 1003 | | 3003 767.19 10/03/1990 2001 1001 | | | ================================================ тЙУХОПЛ 7. 4: хРПТСДПЮЕОЙЕ ЧЩЧПДБ У РПНПЭША ХВЩЧБОЙС РПМС хрптсдпюеойе у рпнпэша нопзпюйумеоощи уфпмвгпч нЩ НПЦЕН ФБЛЦЕ ХРПТСДПЮЙЧБФШ ФБВМЙГХ У РПНПЭША ДТХЗПЗП УФПМВГБ, ОБРТЙНЕТ У РПНПЭША РПМ amt, ЧОХФТЙ ХРПТСДПЮЕОЙС РПМ cnum. ( ЧЩЧПД РПЛБЪБО Ч тЙУХОЛЕ 7.5 ): SELECT * FROM Orders ORDER BY cnum DESC, amt DESC; =============== SQL Execution Log ============== | | | SELECT * | | FROM Orders | | ORDER BY cnum DESC, amt DESC; | | =============================================== | | onum amt odate cnum snum | | ------ -------- ---------- ----- ----- | | 3006 1098.16 10/03/1990 2008 1007 | | 3001 18.69 10/03/1990 2008 1007 | | 3002 1900.10 10/03/1990 2007 1004 | | 3011 9891.88 10/06/1990 2006 1001 | | 3008 4723.00 10/05/1990 2006 1001 | | 3010 1309.95 10/06/1990 2004 1002 | | 3007 75.75 10/04/1990 2004 1002 | | 3005 5160.45 10/03/1990 2003 1002 | | 3009 1713.23 10/04/1990 2002 1003 | | 3003 767.19 10/03/1990 2001 1001 | | | ================================================ тЙУХОПЛ 7.5: хРПТСДПЮЕОЙЕ ЧЩЧПДБ У РПНПЭША НОПЗПЮЙУМЕООЩИ РПМЕК чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ORDER BY ФБЛЙН ЦЕ УРПУПВПН УТБЪХ У МАВЩН ЮЙУМПН УФПМВГПЧ. пВТБФЙФЕ ЧОЙНБОЙЕ ЮФП, ЧП ЧУЕИ УМХЮБСИ, УФПМВГЩ ЛПФПТЩЕ ХРПТСДПЮЙЧБАФУС ДПМЦОЩ ВЩФШ ХЛБЪБОЩ Ч ЧЩВПТЕ SELECT. ьФП - ФТЕВПЧБОЙЕ ANSI ЛПФПТЩЕ Ч ВПМШЫЙОУФЧЕ, ОП ОЕ ЧУЕЗДБ, РТЕДРЙУБОП УЙУФЕНЕ. уМЕДХАЭБС ЛПНБОДБ, ОБРТЙНЕТ, ВХДЕФ ЪБРТЕЭЕОБ: SELECT cname, city FROM Customers GROUP BY cnum; фБЛ ЛБЛ РПМЕ cnum ОЕ ВЩМП ЧЩВТБООЩН РПМЕН, GROUP BY ОЕ cНПЦЕФ ОБКФЙ ЕЗП ЮФПВЩ ЙУРПМШЪПЧБФШ ДМС ХРПТСДПЮЕОЙС ЧЩЧПДБ. дБЦЕ ЕУМЙ ЧБЫБ УЙУФЕНБ РПЪЧПМСЕФ ЬФП, УНЩУМ ХРПТСДПЮЕОЙС ОЕ ВХДЕФ РПОСФЕО ЙЪ ЧЩЧПДБ, ФБЛ ЮФП ЧЛМАЮЕОЙЕ (Ч РТЕДМПЦЕОЙЕ SELECT) ЧУЕИ УФПМВГПЧ, ЙУРПМШЪХЕНЩИ Ч РТЕДМПЦЕОЙЙ ORDER BY, Ч РТЙОГЙРЕ ЦЕМБФЕМШОП. хрптсдпюеойе бзтезбфощи зтхрр ORDER BY НПЦЕФ ЛТПНЕ ФПЗП, ЙУРПМШЪПЧБФШУС У GROUP BY ДМС ХРПТСДПЮЕОЙС ЗТХРР. еУМЙ ЬФП ФБЛ, ФП ORDER BY ЧУЕЗДБ РТЙИПДЙФ РПУМЕДОЙН. чПФ - РТЙНЕТ ЙЪ РПУМЕДОЕК ЗМБЧЩ У ДПВБЧМЕОЙЕН РТЕДМПЦЕОЙС ORDER BY. рЕТЕД УЗТХРРЙТПЧБОЙЕН ЧЩЧПДБ, РПТСДПЛ ЗТХРР ВЩМ РТПЙЪЧПМШОЩН; Й НЩ, ФЕРЕТШ, ЪБУФБЧЙН ЗТХРРЩ ТБЪНЕЭБФШУС Ч РПУМЕДПЧБФЕМШОПУФЙ: SELECT snum, odate, MAX (amt) FROM Orders GROUP BY snum, odate GROUP BY snum; чЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 7.6. =============== SQL Execution Log ============== | | | SELECT snum, odate, MAX (amt) | | FROM Orders | | GROUP BY snum, odate | | ORDER BY snum ; | | =============================================== | | snum odate amt | | ----- ---------- -------- | | 1001 10/06/1990 767.19 | | 1001 10/05/1990 4723.00 | | 1001 10/05/1990 9891.88 | | 1002 10/06/1990 5160.45 | | 1002 10/04/1990 75.75 | | 1002 10/03/1990 1309.95 | | 1003 10/04/1990 1713.23 | | 1004 10/03/1990 1900.10 | | 1007 10/03/1990 1098.16 | | | ================================================ тЙУХОПЛ 7. 6: хРПТСДПЮЕОЙЕ У РПНПЭША ЗТХРРЩ фБЛ ЛБЛ НЩ ОЕ ХЛБЪЩЧБМЙ ОБ ЧПЪТБУФБОЙЕ ЙМЙ ХВЩЧБОЙЕ РПТСДЛБ, ЧПЪТБУФБОЙЕ ЙУРПМШЪХЕФУС РП ХНПМЮБОЙА. хрптсдпюеойе чщчпдб рп опнетх уфпмвгб чНЕУФП ЙНЕО УФПМВГБ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ЙИ РПТСДЛПЧЩЕ ОПНЕТБ ДМС ХЛБЪБОЙС РПМС ЙУРПМШЪХЕНПЗП Ч ХРПТСДПЮЕОЙЙ ЧЩЧПДБ. ьФЙ ОПНЕТБ НПЗХФ УУЩМБФШУС ОЕ ОБ РПТСДПЛ УФПМВГПЧ Ч ФБВМЙГЕ, Б ОБ ЙИ РПТСДПЛ Ч ЧЩЧПДЕ. дТХЗЙНЙ УМПЧБНЙ, РПМЕ ХРПНСОХФПЕ Ч РТЕДМПЦЕОЙЙ SELECT РЕТЧЩН, ДМС ORDER BY - ЬФП РПМЕ 1, ОЕЪБЧЙУЙНП ПФ ФПЗП ЛБЛЙН РП РПТСДЛХ ПОП УФПЙФ Ч ФБВМЙГЕ. оБРТЙНЕТ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ УМЕДХАЭХА ЛПНБОДХ ЮФПВЩ ХЧЙДЕФШ ПРТЕДЕМЕООЩЕ РПМ ФБВМЙГЩ рТПДБЧГПЧ, ХРПТСДПЮЕООЩНЙ Ч РПТСДЛЕ ХВЩЧБОЙ Л ОБЙНЕОШЫЕНХ ЪОБЮЕОЙА ЛПНЙУУЙПООЩИ ( ЧЩЧПД РПЛБЪЩЧБЕФУС тЙУХОЛЕ 7.7 ): SELECT sname, comm FROM Salespeople GROUP BY 2 DESC; =============== SQL Execution Log ============ | | | (SELECT sname, comm | | FROM Salespeople | | ORDER BY 2 DESC; | | ============================================= | | sname comm | | -------- -------- | | Peel 0.17 | | Serres 0.13 | | Rifkin 0.15 | | | =============================================== тЙУХОПЛ 7. 7: хРПТСДПЮЕОЙЕ ЙУРПМШЪХАЭЕЕ ОПНЕТБ пДОБ ЙЪ ПУОПЧОЩИ ГЕМЕК ЬФПК ЧПЪНПЦОПУФЙ ORDER BY - ДБФШ ЧБН ЧПЪНПЦОПУФШ ЙУРПМШЪПЧБФШ GROUP BY УП УФПМВГБНЙ ЧЩЧПДБ ФБЛЦЕ ЛБЛ Й УП УФПМВГБНЙ ФБВМЙГЩ. уФПМВГЩ РТПЙЪЧПДЙНЩЕ БЗТЕЗБФОПК ЖХОЛГЙЕК, ЛПОУФБОФЩ, ЙМЙ ЧЩТБЦЕОЙС Ч РТЕДМПЦЕОЙЙ SELECT ЪБРТПУБ, БВУПМАФОП РТЙЗПДОЩ ДМС ЙУРПМШЪПЧБОЙС У GROUP BY, ЕУМЙ ПОЙ УУЩМБАФУС Л ОЙН У РПНПЭША ОПНЕТБ. оБРТЙНЕТ, ДБЧБКФЕ УПУЮЙФБЕН РПТСДЛЙ ЛБЦДПЗП ЙЪ ОБЫЙИ РТПДБЧГПЧ, Й ЧЩЧЕДЕН ТЕЪХМШФБФЩ Ч ХВЩЧБАЭЕН РПТСДЛЕ, ЛБЛ РПЛБЪБОП Ч тЙУХОЛЕ 7.8: SELECT snum, COUNT ( DISTINCT onum ) FROM Orders GROUP BY snum ORDER BY 2 DESC; =============== SQL Execution Log ============== | | | SELECT snum, odate, MAX (amt) | | FROM Orders | | GROUP BY snum | | ORDER BY 2 DESC; | | =============================================== | | snum | | ----- ---------- | | 1001 3 | | 1002 3 | | 1007 2 | | 1003 1 | | 1004 1 | | | ================================================ тЙУХОПЛ 7.8: хРПТСДПЮЕОЙЕ У РПНПЭША УФПМВГБ ЧЩЧПДБ ч ЬФПН УМХЮБЕ, ЧЩ ДПМЦОЩ ЙУРПМШЪПЧБФШ ОПНЕТ УФПМВГБ, ФБЛ ЛБЛ УФПМВЕГ ЧЩЧПДБ ОЕ ЙНЕЕФ ЙНЕОЙ; Й ЧЩ ОЕ ДПМЦОЩ ЙУРПМШЪПЧБФШ УБНХ БЗТЕЗБФОХА ЖХОЛГЙА. уФТПЗП ЗПЧПТ РП РТБЧЙМБН ANSI SQL, УМЕДХАЭЕЕ ОЕ ВХДЕФ ТБВПФБФШ, ИПФС ОЕЛПФПТЩЕ УЙУФЕНЩ Й РТЕОЕВТЕЗБАФ ЬФЙН ФТЕВПЧБОЙЕН: SELECT snum, COUNT ( DISTINCT onum ) FROM Orders GROUP BY snum GROUP BY COUNTпн ( DISTINCT onum ) DESC; ьФП ВХДЕФ ПФЛМПОЕОП ВПМШЫЙОУФЧПН УЙУФЕН! хрптсдпюеойе у рпнпэша претбфптб NULL еУМЙ ЙНЕАФУС РХУФЩЕ ЪОБЮЕОЙС (NULL) Ч РПМЕ ЛПФПТПЕ ЧЩ ЙУРПМШЪХЕФЕ ДМС ХРПТСДПЮЙЧБОЙС ЧБЫЕЗП ЧЩЧПДБ, ПОЙ НПЗХФ ЙМЙ УМЕДПЧБФШ ЙМЙ РТЕДЫЕУФЧПЧБФШ ЛБЦДПНХ ДТХЗПНХ ЪОБЮЕОЙА Ч РПМЕ. ьФП - ЧПЪНПЦОПУФШ ЛПФПТХА ANSI ПУФБЧЙМ ДМС ЙОДЙЧЙДХБМШОЩИ РТПЗТБНН. дБООБС РТПЗТБННБ ЙУРПМШЪХЕФ ФХ ЙМЙ ЙОХА ЖПТНХ. теъане ч ЬФПК ЗМБЧЕ, ЧЩ ЙЪХЮЙМЙ ЛБЛ ЪБУФБЧЙФШ ЧБЫЙ ЪБРТПУЩ ДЕМБФШ ВПМШЫЕ, ЮЕН РТПУФП ЧЩЧПДЙФШ ЪОБЮЕОЙС РПМЕК ЙМЙ ПВЯЕДЙОСФШ ЖХОЛГЙПОБМШОЩЕ ДБООЩЕ ФБВМЙГ. чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ РПМ Ч ЧЩТБЦЕОЙСИ: ОБРТЙНЕТ, ЧЩ НПЦЕФЕ ХНОПЦЙФШ ЮЙУМПЧПЕ РПМЕ ОБ 10 ЙМЙ ДБЦЕ ХНОПЦЙФШ ЕЗП ОБ ДТХЗПЕ ЮЙУМПЧПЕ РПМЕ. лТПНЕ ФПЗП, ЧЩ НПЦЕФЕ РПНЕЭБФШ ЛПОУФБОФЩ, ЧЛМАЮБС Й УЙНЧПМЩ, Ч ЧБЫ ЧЩЧПД, ЮФП РПЪЧПМСЕФ ЧБН РПНЕЭБФШ ФЕЛУФ ОЕРПУТЕДУФЧЕООП Ч ЪБРТПУ Й РПМХЮБФШ ЕЗП Ч ЧЩЧПДЕ ЧНЕУФЕ У ДБООЩНЙ ФБВМЙГЩ. ьФП ДБЕФ ЧБН ЧПЪНПЦОПУФШ РПНЕЮБФШ ЙМЙ ПВЯСУОСФШ ЧБЫ ЧЩЧПД ТБЪМЙЮОЩНЙ УРПУПВБНЙ. чЩ ФБЛЦЕ ЙЪХЮЙМЙ ЛБЛ ХРПТСДПЮЙЧБФШ ЧБЫ ЧЩЧПД. дБЦЕ ЕУМЙ ФБВМЙГБ УБНБ РП УЕВЕ ПУФБЕФУС ОЕХРПТСДПЮЕООПК, РТЕДМПЦЕОЙЕ ORDER BY ДБЕФ ЧБН ЧПЪНПЦОПУФШ ХРТБЧМСФШ РПТСДЛПН ЧЩЧПДБ УФТПЛ ДБООПЗП ЪБРТПУБ. чЩЧПД ЪБРТПУБ НПЦЕФ ВЩФШ Ч РПТСДЛЕ ЧПЪТБУФБОЙС ЙМЙ ХВЩЧБОЙС, Й УФПМВГЩ НПЗХФ ВЩФШ ЧМПЦЕООЩНЙ ПДЙО ЧОХФТШ ДТХЗПЗП. рПОСФЙЕ ЧЩЧПДЙНЩИ УФПМВГПЧ ПВЯСУОСМПУШ Ч ЬФПК ЗМБЧЕ. чЩ ФЕРЕТШ ЪОБЕФЕ ЮФП ЧЩЧПДЙНЩЕ УФПМВГЩ НПЦОП ЙУРПМШЪПЧБФШ ЮФПВЩ ХРПТСДПЮЙЧБФШ ЧЩЧПД ЪБРТПУБ, ОП ЬФЙ УФПМВГЩ - ВЕЪ ЙНЕОЙ, Й УМЕДПЧБФЕМШОП ДПМЦОЩ ПРТЕДЕМСФШУС ЙИ РПТСДЛПЧЩН ОПНЕТПН Ч РТЕДМПЦЕОЙЙ ORDER BY. фЕРЕТШ, ЛПЗДБ ЧЩ ХЧЙДЕМЙ ЮФП НПЦОП ДЕМБФШ У ЧЩЧПДПН ЪБРТПУБ ПУОПЧБООПЗП ОБ ПДЙОПЮОПК ФБВМЙГЕ, ОБУФБМП ЧТЕНС ЮФПВЩ РЕТЕКФЙ Л ЧПЪНПЦОПУФСН ХМХЮЫЕООПЗП ЪБРТПУБ Й ХЪОБФШ ЛБЛ УДЕМБФШ ЪБРТПУ МАВПЗП ЮЙУМБ ФБВМЙГ Ч ПДОПК ЛПНБОДЕ, ПРТЕДЕМЙЧ УЧСЪЙ НЕЦДХ ОЙНЙ ЛБЛ ЧЩ ЬФП ПВЩЮОП ДЕМБМЙ. ьФП ВХДЕФ ФЕНПК зМБЧЩ 8. тбвпфб у SQL 1. рТЕДРПМПЦЙН ЮФП ЛБЦДЩК РТПДБЧЕГ ЙНЕЕФ 12% ЛПНЙУУЙПООЩИ. оБРЙЫЙФЕ ЪБРТПУ Л ФБВМЙГЕ рПТСДЛПЧ ЛПФПТЩК НПЗ ВЩ ЧЩЧЕУФЙ ОПНЕТ РПТСДЛБ, ОПНЕТ РТПДБЧГБ, Й УХННХ ЛПНЙУУЙПООЩИ РТПДБЧГБ ДМС ЬФПЗП РПТСДЛБ. 2. оБРЙЫЙФЕ ЪБРТПУ Л ФБВМЙГЕ ъБЛБЪЮЙЛПЧ ЛПФПТЩК НПЗ ВЩ ОБКФЙ ЧЩУЫХА ПГЕОЛХ Ч ЛБЦДПН ЗПТПДЕ. чЩЧПД ДПМЦЕО ВЩФШ Ч ФБЛПК ЖПТНЕ: For the city (city), the highest rating is: (rating). 3. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩЧПДЙМ ВЩ УРЙУПЛ ЪБЛБЪЮЙЛПЧ Ч ОЙУИПДСЭЕН РПТСДЛЕ. чЩЧПД РПМ ПГЕОЛЙ( rating ) ДПМЦЕО УПРТПЧПЦДБФШУС ЙНЕОЕН ЪБЛБЪЮЙЛБ Й ЕЗП ОПНЕТПН. 4. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ВЩ ЧЩЧПДЙМ ПВЭЙЕ РПТСДЛЙ ОБ ЛБЦДЩК ДЕОШ Й РПНЕЭБМ ТЕЪХМШФБФЩ Ч ОЙУИПДСЭЕН РПТСДЛЕ. ( уН.рТЙМПЦЕОЙЕ A ДМС ПФЧЕФПЧ. )

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

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