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

Understanding SQL. Chapter 3. йурпмшъпчбойе SQL дмс йъчмеюеойс йожптнбгйй йъ фбвмйг ч ьфпк змбче нщ рплбцен чбн лбл йъчмелбфш ЙОЖПТНБГЙА ЙЪ ФБВМЙГ. чЩ ХЪОБЕФЕ ЛБЛ ПРХУЛБФШ ЙМЙ РЕТЕХРПТСДПЮЙЧБФШ УФПМВГЩ Й ЛБЛ БЧФПНБФЙЮЕУЛЙ ХУФТБОСФШ ЙЪВЩФПЮОПУФШ ДБООЩИ ЙЪ ЧБЫЕЗП ЧЩЧПДБ. ч ЪБЛМАЮЕОЙЕ, ЧЩ ХЪОБЕФЕ ЛБЛ ХУФБОБЧМЙЧБФШ ХУМПЧЙЕ( РТПЧЕТЛХ ) ЛПФПТХА ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ЮФПВЩ ПРТЕДЕМЙФШ ЛБЛЙЕ УФТПЛЙ ФБВМЙГЩ ЙУРПМШЪХАФУС Ч ЧЩЧПДЕ. ьФБ РПУМЕДОСС ПУПВЕООПУФШ, ВХДЕФ ДБМЕЕ ПРЙУБОБ Ч ВПМЕЕ РПЪДОЙИ ЗМБЧБИ Й СЧМСЕФУС ПДОПК ЙЪ ОБЙВПМЕЕ ЙЪСЭОЩИ Й НПЭОЩИ Ч SQL. упъдбойе ъбртпуб лБЛ НЩ РПДЮЕТЛЙЧБМЙ ТБОЕЕ, SQL УЙНЧПМЙЪЙТХЕФ УПВПК уФТХЛФХТЙТПЧБООЩК сЪЩЛ ъБРТПУПЧ. ъБРТПУЩ - ЧЕТПСФОП ОБЙВПМЕЕ ЮБУФП ЙУРПМШЪХЕНЩК БУРЕЛФ SQL. жБЛФЙЮЕУЛЙ, ДМС ЛБФЕЗПТЙЙ SQL РПМШЪПЧБФЕМЕК, НБМПЧЕТПСФОП ЮФПВЩ ЛФП-МЙВП ЙУРПМШЪПЧБМ ЬФПФ СЪЩЛ ДМС ЮЕЗП-ФП ДТХЗПЗП. рП ЬФПК РТЙЮЙОЕ, НЩ ВХДЕН ОБЮЙОБФШ ОБЫЕ ПВУХЦДЕОЙЕ SQL У ПВУХЦДЕОЙС ЪБРТПУБ Й ЛБЛ ПО ЧЩРПМОСЕФУС ОБ ЬФПН СЪЩЛЕ. юфп фблпе ъбртпу ? ъБРТПУ - ЛПНБОДБ ЛПФПТХА ЧЩ ДБЕФЕ ЧБЫЕК РТПЗТБННЕ ВБЪЩ ДБООЩИ, Й ЛПФПТБС УППВЭБЕФ ЕК ЮФПВЩ ПОБ ЧЩЧЕМБ ПРТЕДЕМЕООХА ЙОЖПТНБГЙА ЙЪ ФБВМЙГ Ч РБНСФШ. ьФБ ЙОЖПТНБГЙС ПВЩЮОП РПУЩМБЕФУС ОЕРПУТЕДУФЧЕООП ОБ ЬЛТБО ЛПНРШАФЕТБ ЙМЙ ФЕТНЙОБМБ ЛПФПТЩН ЧЩ РПМШЪХЕФЕУШ, ИПФС, Ч ВПМШЫЙОУФЧЕ УМХЮБЕЧ, ЕЕ НПЦОП ФБЛЦЕ РПУМБФШ РТЙОФЕТХ, УПИТБОЙФШ Ч ЖБКМЕ ( ЛБЛ ПВЯЕЛФ Ч РБНСФЙ ЛПНРШАФЕТБ ), ЙМЙ РТЕДУФБЧЙФШ ЛБЛ ЧЧПДОХА ЙОЖПТНБГЙА ДМС ДТХЗПК ЛПНБОДЩ ЙМЙ РТПГЕУУБ. зде ртйнеосафус ъбртпущ ? ъБРТПУЩ ПВЩЮОП ТБУУНБФТЙЧБАФУС ЛБЛ ЮБУФШ СЪЩЛБ DML. пДОБЛП, ФБЛ ЛБЛ ЪБРТПУ ОЕ НЕОСЕФ ЙОЖПТНБГЙА Ч ФБВМЙГБИ, Б РТПУФП РПЛБЪЩЧБЕФ ЕЕ РПМШЪПЧБФЕМА, НЩ ВХДЕН ТБУУНБФТЙЧБФШ ЪБРТПУЩ ЛБЛ УБНПУФПСФЕМШОХА ЛБФЕЗПТЙА УТЕДЙ ЛПНБОД DML ЛПФПТЩЕ РТПЙЪЧПДСФ ДЕКУФЧЙЕ, Б ОЕ РТПУФП РПЛБЪЩЧБАФ УПДЕТЦБОЙЕ ВБЪЩ ДБООЩИ. чУЕ ЪБРТПУЩ Ч SQL УПУФПСФ ЙЪ ПДЙОПЮОПК ЛПНБОДЩ. уФТХЛФХТБ ЬФПК ЛПНБОДЩ ПВНБОЮЙЧП РТПУФБ, РПФПНХ ЮФП ЧЩ ДПМЦОЩ ТБУЫЙТСФШ ЕЕ ФБЛ ЮФПВЩ ЧЩРПМОЙФШ ЧЩУПЛП УМПЦОЩЕ ПГЕОЛЙ Й ПВТБВПФЛЙ ДБООЩИ. ьФБ ЛПНБОДБ ОБЪЩЧБЕФУС - SELECT(чщвпт). лпнбодб SELECT ч УБНПК РТПУФПК ЖПТНЕ, ЛПНБОДБ SELECT РТПУФП ЙОУФТХЛФЙТХЕФ ВБЪХ ДБООЩИ ЮФПВЩ ЙЪЧМЕЮШ ЙОЖПТНБГЙА ЙЪ ФБВМЙГЩ. оБРТЙНЕТ, ЧЩ НПЗМЙ ВЩ ЧЩЧЕУФЙ ФБВМЙГХ рТПДБЧГПЧ ОБРЕЮБФБЧ УМЕДХАЭЕЕ: SELECT snum, sname, sity, comm FROM Salespeople; чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 3.1. =============== SQL Execution Log ============ | | | SELECT snum, sname, sity, comm | | FROM Salespeople; | | | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1001 Peel London 0.12 | | 1002 Serres San Jose 0.13 | | 1004 Motika London 0.11 | | 1007 Rifkin Barcelona 0.15 | | 1003 Axelrod New York 0.10 | =============================================== тЙУХОПЛ 3.1: ЛПНБОДБ SELECT дТХЗЙНЙ УМПЧБНЙ, ЬФБ ЛПНБОДБ РТПУФП ЧЩЧПДЙФ ЧУЕ ДБООЩЕ ЙЪ ФБВМЙГЩ. вПМШЫЙОУФЧП РТПЗТБНН ВХДХФ ФБЛЦЕ ДБЧБФШ ЪБЗПМПЧЛЙ УФПМВГБ ЛБЛ ЧЩЫЕ, Б ОЕЛПФПТЩЕ РПЪЧПМСАФ ДЕФБМШОПЕ ЖПТНБФЙТПЧБОЙЕ ЧЩЧПДБ, ОП ЬФП ХЦЕ ЧОЕ УФБОДБТФОПК УРЕГЙЖЙЛБГЙЙ. йНЕЕФУС ПВЯСУОЕОЙЕ ЛБЦДПК ЮБУФЙ ЬФПК ЛПНБОДЩ: SELECT лМАЮЕЧПЕ УМПЧП ЛПФПТПЕ УППВЭБЕФ ВБЪЕ ДБООЩИ ЮФП ЬФБ ЛПНБОДБ - ЪБРТПУ. чУЕ ЪБРТПУЩ ОБЮЙОБАФУС ЬФЙН УМПЧПН, УПРТПЧПЦДБЕНЩН РТПВЕМПН. snum, sname ьФП - УРЙУПЛ УФПМВГПЧ ЙЪ ФБВМЙГЩ ЛПФПТЩЕ ЧЩВЙТБАФУС ЪБРТПУПН. мАВЩЕ УФПМВГЩ ОЕ РЕТЕЮЙУМЕООЩЕ ЪДЕУШ ОЕ ВХДХФ ЧЛМАЮЕОЩ Ч ЧЩЧПД ЛПНБОДЩ. ьФП, ЛПОЕЮОП, ОЕ ЪОБЮЙФ ЮФП ПОЙ ВХДХФ ХДБМЕОЩ ЙМЙ ЙИ ЙОЖПТНБГЙС ВХДЕФ УФЕТФБ ЙЪ ФБВМЙГ, РПФПНХ ЮФП ЪБРТПУ ОЕ ЧПЪДЕКУФЧХЕФ ОБ ЙОЖПТНБГЙА Ч ФБВМЙГБИ; ПО ФПМШЛП РПЛБЪЩЧБЕФ ДБООЩЕ. FROM FROM - ЛМАЮЕЧПЕ УМПЧП, РПДПВОП SELECT, ЛПФПТПЕ ДПМЦОП Salespeople ВЩФШ РТЕДУФБЧМЕОП Ч ЛБЦДПН ЪБРТПУЕ. пОП УПРТПЧПЦДБЕФУС РТПВЕМПН Й ЪБФЕН ЙНЕОЕН ФБВМЙГЩ ЙУРПМШЪХЕНПК Ч ЛБЮЕУФЧЕ ЙУФПЮОЙЛБ ЙОЖПТНБГЙЙ. ч ДБООПН УМХЮБЕ - ЬФП ФБВМЙГБ рТПДБЧГПЧ(Salespeople). ; фПЮЛБ У ЪБРСФПК ЙУРПМШЪХЕФУС ЧП ЧУЕИ ЙОФЕТБЛФЙЧОЩИ ЛПНБОДБИ SQL ЮФПВЩ УППВЭБФШ ВБЪЕ ДБООЩИ ЮФП ЛПНБОДБ ЪБРПМОЕОБ Й ЗПФПЧБ ЧЩРПМОЙФШУС. ч ОЕЛПФПТЩИ УЙУФЕНБИ ОБЛМПООБ ЮЕТФБ ЧМЕЧП (\) Ч УФТПЛЕ, СЧМСЕФУС ЙОДЙЛБФПТПН ЛПОГБ ЛПНБОДЩ. еУФЕУФЧЕООП, ЪБРТПУ ФБЛПЗП ИБТБЛФЕТБ ОЕ ПВСЪБФЕМШОП ВХДЕФ ХРПТСДПЮЙЧБФШ ЧЩЧПД МАВЩН ХЛБЪБООЩН УРПУПВПН. фБ ЦЕ УБНБ ЛПНБОДБ ЧЩРПМОЕООБС У ФЕНЙ ЦЕ УБНЩНЙ ДБООЩНЙ ОП Ч ТБЪОПЕ ЧТЕН ОЕ УНПЦЕФ ЧЩЧЕУФЙ ФПФ ЦЕ УБНЩК РПТСДПЛ. пВЩЮОП, УФТПЛЙ ПВОБТХЦЙЧБАФУС Ч ФПН РПТСДЛЕ Ч ЛПФПТПН ПОЙ ОБКДЕОЩ Ч ФБВМЙГЕ, РПУЛПМШЛХ ЛБЛ НЩ ХУФБОПЧЙМЙ Ч РТЕДЩДХЭЕК ЗМБЧЕ - ЬФПФ РПТСДПЛ РТПЙЪЧПМЕО. ьФП ОЕ ПВСЪБФЕМШОП ВХДЕФ ФПФ РПТСДПЛ Ч ЛПФПТПН ДБООЩЕ ЧЧПДЙМЙУШ ЙМЙ УПИТБОСМЙУШ. чЩ НПЦЕФЕ ХРПТСДПЮЙЧБФШ ЧЩЧПД ЛПНБОДБНЙ SQL ОЕРПУТЕДУФЧЕООП: У РПНПЭША УРЕГЙБМШОПЗП РТЕДМПЦЕОЙС. рПЪЦЕ, НЩ РПЛБЦЕН ЛБЛ ЬФП ДЕМБЕФУС. б УЕКЮБУ, РТПУФП ХУЧПКФЕ, ЮФП Ч ПФУХФУФЧЙЙ СЧОПЗП ХРПТСДПЮЕОЙС, ОЕФ ОЙЛБЛПЗП ПРТЕДЕМЕООПЗП РПТСДЛБ Ч ЧБЫЕН ЧЩЧПДЕ. оБЫЕ ЙУРПМШЪПЧБОЙЕ ЧПЪЧТБФБ ( лМБЧЙЫБ ENTER ) СЧМСЕФУС РТПЙЪЧПМШОЩН. нЩ ДПМЦОЩ ФПЮОП ХУФБОПЧЙФШ ЛБЛ ХДПВОЕЕ УПУФБЧЙФШ ЪБРТПУ, Ч ОЕУЛПМШЛП УФТПЛ ЙМЙ Ч ПДОХ УФТПЛХ, УМЕДХАЭЙН ПВТБЪПН: SELECT snum, sname, city, comm FROM Salespeople; у ФЕИ РПТ ЛБЛ SQL ЙУРПМШЪХЕФ ФПЮЛХ У ЪБРСФПК ЮФПВЩ ХЛБЪЩЧБФШ ЛПОЕГ ЛПНБОДЩ, ВПМШЫЙОУФЧП РТПЗТБНН SQL ПВТБВБФЩЧБАФ ЧПЪЧТБФ (ЮЕТЕЪ ОБЦЙН чПЪЧТБФ ЙМЙ ЛМБЧЙЫХ ENTER ) ЛБЛ РТПВЕМ. ьФП - ИПТПЫБ ЙДЕС ЮФПВЩ ЙУРПМШЪПЧБФШ ЧПЪЧТБФЩ Й ЧЩТБЧОЙЧБОЙЕ ЮФП НЩ ДЕМБМЙ ЬФП ТБОЕЕ, ЮФПВЩ УДЕМБФШ ЧБЫЙ ЛПНБОДЩ ВПМЕЕ МЕЗЛЙНЙ ДМС ЮФЕОЙС Й ВПМЕЕ РТБЧЙМШОЩНЙ. чщвйтбкфе чуездб убнщк ртпуфпк урпупв еУМЙ ЧЩ ИПФЙФЕ ЧЙДЕФШ ЛБЦДЩК УФПМВЕГ ФБВМЙГЩ, ЙНЕЕФУС ОЕПВСЪБФЕМШОПЕ УПЛТБЭЕОЙЕ ЛПФПТПЕ ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ. ъЧЕЪДПЮЛБ (*) НПЦЕФ РТЙНЕОСФШУС ДМС ЧЩЧПДБ РПМОПЗП УРЙУЛБ УФПМВГПЧ УМЕДХАЭЙН ПВТБЪПН: SELECT * FROM Salespeople; ьФП РТЙЧЕДЕФ Л ФПНХ ЦЕ ТЕЪХМШФБФХ ЮФП Й ОБЫБ РТЕДЩДХЭБС ЛПНБОДБ. прйубойе SELECT ч ПВЭЕН УМХЮБЕ, ЛПНБОДБ SELECT ОБЮЙОБЕФУС У ЛМАЮЕЧПЗП УМПЧБ SELECT, УПРТПЧПЦДБЕНПЗП РТПВЕМПН. рПУМЕ ЬФПЗП ДПМЦЕО УМЕДПЧБФШ УРЙУПЛ ЙНЕО УФПМВГПЧ ЛПФПТЩЕ ЧЩ ИПФЙФЕ ЧЙДЕФШ, ПФДЕМСЕНЩЕ ЪБРСФЩНЙ. еУМЙ ЧЩ ИПФЙФЕ ЧЙДЕФШ ЧУЕ УФПМВГЩ ФБВМЙГЩ, ЧЩ НПЦЕФЕ ЪБНЕОЙФШ ЬФПФ УРЙУПЛ ЪЧЕЪДПЮЛПК (*). лМАЮЕЧПЕ УМПЧП FROM УМЕДХАЭЕЕ ДБМЕЕ, УПРТПЧПЦДБЕФУС РТПВЕМПН Й ЙНЕОЕН ФБВМЙГЩ ЪБРТПУ Л ЛПФПТПК ДЕМБЕФУС. ч ЪБЛМАЮЕОЙЕ, ФПЮЛБ У ЪБРСФПК ( ; ) ДПМЦОБ ЙУРПМШЪПЧБФШУС ЮФПВЩ ЪБЛПОЮЙФШ ЪБРТПУ Й ХЛБЪБФШ ЮФП ЛПНБОДБ ЗПФПЧБ Л ЧЩРПМОЕОЙА. ртпунпфт фпмшлп пртедемеоопзп уфпмвгб фбвмйгщ лПНБОДБ SELECT УРПУПВОБ ЙЪЧМЕЮШ УФТПЗП ПРТЕДЕМЕООХА ЙОЖПТНБГЙА ЙЪ ФБВМЙГЩ. уОБЮБМБ, НЩ НПЦЕН РТЕДПУФБЧЙФШ ЧПЪНПЦОПУФШ ХЧЙДЕФШ ФПМШЛП ПРТЕДЕМЕООЩЕ УФПМВГЩ ФБВМЙГЩ. ьФП ЧЩРПМОСЕФУС МЕЗЛП, РТПУФЩН ЙУЛМАЮЕОЙЕН УФПМВГПЧ ЛПФПТЩЕ ЧЩ ОЕ ИПФЙФЕ ЧЙДЕФШ, ЙЪ ЮБУФЙ ЛПНБОДЩ SELECT. оБРТЙНЕТ, ЪБРТПУ SELECT sname, comm FROM Salespeople; ВХДЕФ РТПЙЪЧПДЙФШ ЧЩЧПД РПЛБЪБООЩК ОБ тЙУХОЛЕ 3.2. =============== SQL Execution Log ============ | | | SELECT snum, comm | | FROM Salespeople; | | | | ==============================================| | sname comm | | ------------- --------- | | Peel 0.12 | | Serres 0.13 | | Motika 0.11 | | Rifkin 0.15 | | Axelrod 0.10 | =============================================== тЙУХОПЛ 3.2: чЩВПТ ПРТЕДЕМЕООЩИ УФПМВГПЧ нПЗХФ ЙНЕФШУС ФБВМЙГЩ ЛПФПТЩЕ ЙНЕАФ ВПМШЫПЕ ЛПМЙЮЕУФЧП УФПМВГПЧ УПДЕТЦБЭЙИ ДБООЩЕ, ОЕ ЧУЕ ЙЪ ЛПФПТЩИ СЧМСАФУС ПФОПУСЭЙНЙУС Л РПУФБЧМЕООПК ЪБДБЮЕ. уМЕДПЧБФЕМШОП, ЧЩ НПЦЕФЕ ОБКФЙ УРПУПВ РПДВПТБ Й ЧЩВПТБ ФПМШЛП РПМЕЪОЩИ ДМС чБУ УФПМВГПЧ. ретехрптсдпюеойе уфпмвгб дБЦЕ ЕУМЙ УФПМВГЩ ФБВМЙГЩ, РП ПРТЕДЕМЕОЙА, ХРПТСДПЮЕОЩ, ЬФП ОЕ ПЪОБЮБЕФ ЮФП ЧЩ ВХДЕФЕ ЧПУУФБОБЧМЙЧБФШ ЙИ Ч ФПН ЦЕ РПТСДЛЕ. лПОЕЮОП, ЪЧЕЪДПЮЛБ (*) РПЛБЦЕФ ЧУЕ УФПМВГЩ Ч ЙИ ЕУФЕУФЧЕООПН РПТСДЛЕ, ОП ЕУМЙ ЧЩ ХЛБЦЕФЕ УФПМВГЩ ПФДЕМШОП, ЧЩ НПЦЕФЕ РПМХЮЙФШ ЙИ Ч ФПН РПТСДЛЕ ЛПФПТПН ИПФЙФЕ. дБЧБКФЕ ТБУУНПФТЙН ФБВМЙГХ рПТСДЛПЧ, УПДЕТЦБЭХА ДБФХ РТЙПВТЕФЕОЙС(odate), ОПНЕТ РТПДБЧГБ(snum), ОПНЕТ РПТСДЛБ(onum), Й УХННЩ РТЙПВТЕФЕОЙС(amt): SELECT odate, snum, onum, amt FROM Orders; чЩЧПД ЬФПЗП ЪБРТПУБ РПЛБЪБО ОБ тЙУХОЛЕ 3.3. ============= SQL Execution Log ============= | | | SELECT odate, snum, onum, amt | | FROM Orders; | | | | ------------------------------------------------| | odate snum onum amt | | ----------- ------- ------ --------- | | 10/03/1990 1007 3001 18.69 | | 10/03/1990 1001 3003 767.19 | | 10/03/1990 1004 3002 1900.10 | | 10/03/1990 1002 3005 5160.45 | | 10/03/1990 1007 3006 1098.16 | | 10/04/1990 1003 3009 1713.23 | | 10/04/1990 1002 3007 75.75 | | 10/05/1990 1001 3008 4723.00 | | 10/06/1990 1002 3010 1309.95 | | 10/06/1990 1001 3011 9891.88 | | | =============================================== тЙУХОПЛ 3.3: тЕЛПОУФТХЛГЙС УФПМВГПЧ лБЛ ЧЩ НПЦЕФЕ ЧЙДЕФШ, УФТХЛФХТБ ЙОЖПТНБГЙЙ Ч ФБВМЙГБИ - ЬФП РТПУФП ПУОПЧБ ДМС БЛФЙЧОПК РЕТЕУФТПКЛЙ УФТХЛФХТЩ Ч SQL. хдбмеойе йъвщфпюощи дбоощи DISTINCT (пфмйюйе) - БТЗХНЕОФ ЛПФПТЩК ПВЕУРЕЮЙЧБЕФ чБУ УРПУПВПН ХУФТБОСФШ ДЧПКОЩЕ ЪОБЮЕОЙС ЙЪ ЧБЫЕЗП РТЕДМПЦЕОЙС SELECT. рТЕДРПМПЦЙН ЮФП ЧЩ ИПФЙФЕ ЪОБФШ ЛБЛЙЕ РТПДБЧГЩ Ч ОБУФПСЭЕЕ ЧТЕНС ЙНЕАФ УЧПЙ РПТСДЛЙ Ч ФБВМЙГЕ рПТСДЛПЧ. рПД РПТСДЛПН (ЪДЕУШ Й ДБМЕЕ) ВХДЕФ РПОЙНБФШУС ЪБРЙУШ Ч ФБВМЙГХ рПТСДЛПЧ, ТЕЗЙУФТЙТХАЭХА РТЙПВТЕФЕОЙС УДЕМБООЩЕ Ч ПРТЕДЕМЕООЩК ДЕОШ ПРТЕДЕМЕООЩН ЪБЛБЪЮЙЛПН Х ПРТЕДЕМЕООПЗП РТПДБЧГБ ОБ ПРТЕДЕМЕООХА УХННХ). чБН ОЕ ОХЦОП ЪОБФШ, УЛПМШЛП РПТСДЛПЧ ЙНЕЕФ ЛБЦДЩК; ЧБН ОХЦЕО ФПМШЛП УРЙУПЛ ОПНЕТПЧ РТПДБЧГПЧ (snum). рПЬФПНХ чЩ НПЦЕФЕ ЧЧЕУФЙ: SELECT snum FROM Orders; ДМС РПМХЮЕОЙС ЧЩЧПДБ РПЛБЪБООПЗП Ч тЙУХОЛЕ 3.4 =============== SQL Execution Log ============ | | | SELECT snum | | FROM Orders; | | | | ============================================= | | snum | | ------- | | 1007 | | 1001 | | 1004 | | 1002 | | 1007 | | 1003 | | 1002 | | 1001 | | 1002 | | 1001 | ============================================= тЙУХОПЛ 3. 4: SELECT У ДХВМЙТПЧБОЙЕН ОПНЕТПЧ РТПДБЧГПЧ. дМС РПМХЮЕОЙС УРЙУЛБ ВЕЪ ДХВМЙЛБФПЧ, ДМС ХДПВПЮЙФБЕНПУФЙ, ЧЩ НПЦЕФЕ ЧЧЕУФЙ УМЕДХАЭЕЕ: SELECT DISTINCT snum FROM Orders; чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪБО Ч тЙУХОЛЕ 3.5. дТХЗЙНЙ УМПЧБНЙ, DISTINCT УМЕДЙФ ЪБ ФЕН, ЛБЛЙЕ ЪОБЮЕОЙС ВЩМЙ ТБОЕЕ, ФБЛ ЮФП ВЩ ПОЙ ОЕ ВЩМЙ РТПДХВМЙТПЧБОЩ Ч УРЙУЛЕ. ьФП - РПМЕЪОЩК УРПУПВ ЙЪВЕЦБФШ ЙЪВЩФПЮОПУФЙ ДБООЩИ, ОП ЧБЦОП ЮФП ВЩ РТЙ ЬФПН ЧЩ РПОЙНБМЙ ЮФП ЧЩ ДЕМБЕФЕ. еУМЙ ЧЩ ОЕ ИПФЙФЕ РПФЕТСФШ ОЕЛПФПТЩЕ ДБООЩЕ, ЧЩ ОЕ ДПМЦОЩ ВЕЪПЗМСДОП ЙУРПМШЪПЧБФШ DISTINCT, РПФПНХ ЮФП ЬФП НПЦЕФ УЛТЩФШ ЛБЛХА-ФП РТПВМЕНХ ЙМЙ ЛБЛЙЕ-ФП ЧБЦОЩЕ ДБООЩЕ. оБРТЙНЕТ, ЧЩ НПЗМЙ ВЩ РТЕДРПМПЦЙФШ ЮФП ЙНЕОБ ЧУЕИ ЧБЫЙИ ЪБЛБЪЮЙЛПЧ ТБЪМЙЮОЩ. еУМЙ ЛФП-ФП РПНЕЭБЕФ ЧФПТПЗП Clemens Ч ФБВМЙГХ ъБЛБЪЮЙЛПЧ, Б ЧЩ ЙУРПМШЪХЕФЕ SELECT DISTINCT cname, ЧЩ ОЕ ВХДЕФЕ ДБЦЕ ЪОБФШ П УХЭЕУФЧПЧБОЙЙ ДЧПКОЙЛБ. чЩ НПЦЕФЕ РПМХЮЙФШ ОЕ ФПЗП Clemens Й ДБЦЕ ОЕ ЪОБФШ ПВ ЬФПН. фБЛ ЛБЛ ЧЩ ОЕ ПЦЙДБЕФЕ ЙЪВЩФПЮОПУФЙ, Ч ЬФПН УМХЮБЕ ЧЩ ОЕ ДПМЦОЩ ЙУРПМШЪПЧБФШ DISTINCT. рбтбнефтщ DISTINCT DISTINCT НПЦЕФ ХЛБЪЩЧБФШУС ФПМШЛП ПДЙО ТБЪ Ч ДБООПН РТЕДМПЦЕОЙЙ SELECT. еУМЙ РТЕДМПЦЕОЙЕ ЧЩВЙТБЕФ НОПЗПЮЙУМЕООЩЕ РПМ, =============== SQL Execution Log ============ | | | SELECT DISTINCT snum | | FROM Orders; | | | | ============================================= | | snum | | ------- | | 1001 | | 1002 | | 1003 | | 1004 | | 1007 | ============================================= тЙУХОПЛ 3.5: SELECT ВЕЪ ДХВМЙТПЧБОЙС DISTINCT ПРХУЛБЕФ УФТПЛЙ ЗДЕ ЧУЕ ЧЩВТБООЩЕ РПМ ЙДЕОФЙЮОЩ. уФТПЛЙ Ч ЛПФПТЩИ ОЕЛПФПТЩЕ ЪОБЮЕОЙС ПДЙОБЛПЧЩ Б ОЕЛПФПТЩЕ ТБЪМЙЮОЩ - ВХДХФ УПИТБОЕОЩ. DISTINCT, ЖБЛФЙЮЕУЛЙ, РТЙЧПДЙФ Л РПЛБЪХ ЧУЕК УФТПЛЙ ЧЩЧПДБ, ОЕ ХЛБЪЩЧБС РПМЕК ( ЪБ ЙУЛМАЮЕОЙЕН ЛПЗДБ ПО ЙУРПМШЪХЕФУС ЧОХФТЙ БЗТЕЗБФ- ОЩИ ЖХОЛГЙК, ЛБЛ ПРЙУБОП Ч зМБЧЕ 6 ), ФБЛ ЮФП ОЕФ ОЙЛБЛПЗП УНЩУМБ ЮФПВЩ ЕЗП РПЧФПТСФШ. DISTINCT чнеуфп ALL чНЕУФП DISTINCT, ЧЩ НПЦЕФЕ ХЛБЪБФШ - ALL. ьФП ВХДЕФ ЙНЕФШ РТПФЙЧПРПМПЦОЩК ЬЖЖЕЛФ, ДХВМЙТПЧБОЙЕ УФТПЛ ЧЩЧПДБ УПИТБОЙФУС. фБЛ ЛБЛ ЬФП - ФПФ ЦЕ УБНЩК УМХЮБК ЛПЗДБ ЧЩ ОЕ ХЛБЪЩЧБЕФЕ ОЙ DISTINCT ОЙ ALL, ФП ALL - РП УХЭЕУФЧХ УЛПТЕЕ РПСУОЙФЕМШОЩК, Б ОЕ ДЕКУФЧХАЭЙК БТЗХНЕОФ. лчбмйжйгйтпчбоощк чщвпт ртй йурпмшъпчбойй ртедмпцеойк фБВМЙГЩ ЙНЕАФ ФЕОДЕОГЙА УФБОПЧЙФШУС ПЮЕОШ ВПМШЫЙНЙ, РПУЛПМШЛХ У ФЕЮЕОЙЕН ЧТЕНЕОЙ, ЧУЕ ВПМШЫЕЕ Й ВПМШЫЕЕ ЛПМЙЮЕУФЧП УФТПЛ Ч ОЕЕ ДПВБЧМСЕФУС. рПУЛПМШЛХ ПВЩЮОП ЙЪ ОЙИ ФПМШЛП ПРТЕДЕМЕООЩЕ УФТПЛЙ ЙОФЕТЕУХАФ ЧБУ Ч ДБООПЕ ЧТЕН, SQL ДБЕФ ЧПЪНПЦОПУФШ ЧБН ХУФБОБЧМЙЧБФШ ЛТЙФЕТЙЙ ЮФПВЩ ПРТЕДЕМЙФШ ЛБЛЙЕ УФТПЛЙ ВХДХФ ЧЩВТБОЩ ДМС ЧЩЧПДБ. WHERE - РТЕДМПЦЕОЙЕ ЛПНБОДЩ SELECT, ЛПФПТПЕ РПЪЧПМСЕФ ЧБН ХУФБОБЧМЙЧБФШ РТЕДЙЛБФЩ, ХУМПЧЙЕ ЛПФПТЩИ НПЦЕФ ВЩФШ ЙМЙ ЧЕТОЩН ЙМЙ ОЕЧЕТОЩН ДМС МАВПК УФТПЛЙ ФБВМЙГЩ. лПНБОДБ ЙЪЧМЕЛБЕФ ФПМШЛП ФЕ УФТПЛЙ ЙЪ ФБВМЙГЩ ДМС ЛПФПТПК ФБЛПЕ ХФЧЕТЦДЕОЙЕ ЧЕТОП. оБРТЙНЕТ, РТЕДРПМПЦЙН ЧЩ ИПФЙФЕ ЧЙДЕФШ ЙНЕОБ Й ЛПНЙУУЙПООЩЕ ЧУЕИ РТПДБЧГПЧ Ч мПОДПОЕ. чЩ НПЦЕФЕ ЧЧЕУФЙ ФБЛХА ЛПНБОДХ: SELECT sname, city FROM Salespeople; WHERE city = "LONDON"; лПЗДБ РТЕДМПЦЕОЙЕ WHERE РТЕДУФБЧМЕОП, РТПЗТБННБ ВБЪЩ ДБООЩИ РТПУНБФТЙЧБЕФ ЧУА ФБВМЙГХ РП ПДОПК УФТПЛЕ Й ЙУУМЕДХЕФ ЛБЦДХА УФТПЛХ ЮФПВЩ ПРТЕДЕМЙФШ ЧЕТОП МЙ ХФЧЕТЦДЕОЙЕ. уМЕДПЧБФЕМШОП, ДМС ЪБРЙУЙ Peel, РТПЗТБННБ ТБУУНПФТЙФ ФЕЛХЭЕЕ ЪОБЮЕОЙЕ УФПМВГБ city, ПРТЕДЕМЙФ ЮФП ПОП ТБЧОП "London", Й ЧЛМАЮЙФ ЬФХ УФТПЛХ Ч ЧЩЧПД. ъБРЙУШ ДМС Serres ОЕ ВХДЕФ ЧЛМАЮЕОБ, Й ФБЛ ДБМЕЕ. чЩЧПД ДМС ЧЩЫЕХРПНСОХФПЗП ЪБРТПУБ РПЛБЪБО Ч тЙУХОЛЕ 3.6. =============== SQL Execution Log ============ | | | SELECT sname, city | | FROM Salespeople | | WHERE city = 'London' | | ============================================= | | sname city | | ------- ---------- | | Peel London | | Motika London | ============================================= тЙУХОПЛ 3.6: SELECT c РТЕДМПЦЕОЙЕН WHERE дБЧБКФЕ РПРТПВХЕН РТЙНЕТ У ЮЙУМПЧЩН РПМЕН Ч РТЕДМПЦЕОЙЙ WHERE. рПМЕ rating ФБВМЙГЩ ъБЛБЪЮЙЛПЧ РТЕДОБЪОБЮЕОП ЮФПВЩ ТБЪДЕМСФШ ЪБЛБЪЮЙЛПЧ ОБ ЗТХРРЩ ПУОПЧБООЩЕ ОБ ОЕЛПФПТЩИ ЛТЙФЕТЙСИ ЛПФПТЩЕ НПЗХФ ВЩФШ РПМХЮЕОЩ Ч ЙФПЗЕ ЮЕТЕЪ ЬФПФ ОПНЕТ. чПЪНПЦОП ЬФП - ЖПТНБ ПГЕОЛЙ ЛТЕДЙФБ ЙМЙ ПГЕОЛЙ ПУОПЧБООПК ОБ ФПНЕ РТЕДЩДХЭЙИ РТЙПВТЕФЕОЙК. фБЛЙЕ ЮЙУМПЧЩЕ ЛПДЩ НПЗХФ ВЩФШ РПМЕЪОЩ Ч ТЕМСГЙПООЩИ ВБЪБИ ДБООЩИ ЛБЛ УРПУПВ РПДЧЕДЕОЙС ЙФПЗПЧ УМПЦОПК ЙОЖПТНБГЙЙ. нЩ НПЦЕН ЧЩВТБФШ ЧУЕИ ЪБЛБЪЮЙЛПЧ У ТЕКФЙОЗПН 100, УМЕДХАЭЙН ПВТБЪПН: SELECT * FROM Customers WHERE rating = 100; пДЙОПЮОЩЕ ЛБЧЩЮЛЙ ОЕ ЙУРПМШЪХАФУС ЪДЕУШ РПФПНХ, ЮФП ПГЕОЛБ - ЬФП ЮЙУМПЧПЕ РПМЕ. тЕЪХМШФБФЩ ЪБРТПУБ РПЛБЪБОЩ Ч тЙУХОЛЕ 3. 7. рТЕДМПЦЕОЙЕ WHERE УПЧНЕУФЙНП У РТЕДЩДХЭЙН НБФЕТЙБМПН Ч ЬФПК ЗМБЧЕ. дТХЗЙНЙ УМПЧБНЙ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ОПНЕТБ УФПМВГПЧ, ХУФТБОСФШ ДХВМЙЛБФЩ, ЙМЙ РЕТЕХРПТСДПЮЙЧБФШ УФПМВГЩ Ч ЛПНБОДЕ SELECT ЛПФПТБС ЙУРПМШЪХЕФ WHERE. пДОБЛП, ЧЩ НПЦЕФЕ ЙЪНЕОСФШ РПТСДПЛ УФПМВГПЧ ДМС ЙНЕО ФПМШЛП Ч РТЕДМПЦЕОЙЙ SELECT, ОП ОЕ Ч РТЕДМПЦЕОЙЙ WHERE. ============ SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE rating = 100; | | ============================================= | | Уnum cname city rating snum | | ------ -------- ------ ---- ------ | | 2001 Hoffman London 100 1001 | | 2006 Clemens London 100 1001 | | 2007 Pereira Rome 100 1001 | ============================================= тЙУХОПЛ 3.7: SELECT У ЮЙУМПЧЩН РПМЕН Ч РТЕДЙЛБФЕ теъане фЕРЕТШ ЧЩ ЪОБЕФЕ ОЕУЛПМШЛП УРПУПВПЧ ЪБУФБЧЙФШ ФБВМЙГХ ДБЧБФШ ЧБН ФХ ЙОЖПТНБГЙА ЛБЛХА ЧЩ ИПФЙФЕ, Б ОЕ РТПУФП ЧЩВТБУЩЧБФШ ОБТХЦХ ЧУЕ ЕЕ УПДЕТЦБОЙЕ. чЩ НПЦЕФЕ РЕТЕХРПТСДПЮЙЧБФШ УФПМВГЩ ФБВМЙГЩ ЙМЙ ХУФТБОСФШ МАВХА ЙЪ ОЙИ. чЩ НПЦЕФЕ ТЕЫБФШ, ИПФЙФЕ ЧЩ ЧЙДЕФШ ДХВМЙТП- ЧБООЩЕ ЪОБЮЕОЙС ЙМЙ ОЕФ. оБЙВПМЕЕ ЧБЦОП ФП, ЮФП ЧЩ НПЦЕФЕ ХУФБОБЧМЙЧБФШ ХУМПЧЙЕ ОБЪЩЧБЕНПЕ РТЕДЙЛБФПН ЛПФПТПЕ ПРТЕДЕМСЕФ ЙМЙ ОЕ ПРТЕДЕМСЕФ ХЛБЪБООХА УФТПЛХ ФБВМЙГЩ ЙЪ ФЩУСЮ ФБЛЙИ ЦЕ УФТПЛ, ВХДЕФ МЙ ПОБ ЧЩВТБОБ ДМС ЧЩЧПДБ. рТЕДЙЛБФЩ НПЗХФ УФБОПЧЙФШУС ПЮЕОШ УМПЦОЩНЙ, РТЕДПУФБЧМСС ЧБН ЧЩУПЛХА ФПЮОПУФШ Ч ТЕЫЕОЙЙ, ЛБЛЙЕ УФТПЛЙ ЧБН ЧЩВЙТБФШ У РПНПЭША ЪБРТПУБ. йНЕООП ЬФБ УРПУПВОПУФШ ТЕЫБФШ ФПЮОП, ЮФП ЧЩ ИПФЙФЕ ЧЙДЕФШ, ДЕМБЕФ ЪБРТПУЩ SQL ФБЛЙНЙ НПЭОЩНЙ. уМЕДХАЭЙЕ ОЕУЛПМШЛП ЗМБЧ ВХДХФ РПУЧСЭЕОЩ, Ч ВПМШЫЕК НЕТЕ, ПУПВЕООПУФСН ЛПФПТЩЕ ТБУЫЙТСАФ НПЭОПУФШ РТЕДЙЛБФПЧ. ч зМБЧЕ 4, ЧБН ВХДХФ РТЕДУФБЧМЕОЩ ПРЕТБФПТЩ ЙОЩЕ ЮЕН ФЕ ЛПФПТЩЕ ЙУРПМШЪХАФУС Ч ХУМПЧЙСИ РТЕДЙЛБФБ, Б ФБЛЦЕ УРПУПВЩ ПВЯЕДЙОЕОЙС НОПЗПЮЙУМЕООЩИ ХУМПЧЙК Ч ЕДЙОЩК РТЕДЙЛБФ. тбвпфб у SQL 1. оБРЙЫЙФЕ ЛПНБОДХ SELECT ЛПФПТБС ВЩ ЧЩЧЕМБ ОПНЕТ РПТСДЛБ, УХННХ, Й ДБФХ ДМС ЧУЕИ УФТПЛ ЙЪ ФБВМЙГЩ рПТСДЛПЧ. 2. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩЧЕМ ВЩ ЧУЕ УФТПЛЙ ЙЪ ФБВМЙГЩ ъБЛБЪЮЙЛПЧ ДМС ЛПФПТЩИ ОПНЕТ РТПДБЧГБ = 1001. 3 оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩЧЕМ ВЩ ФБВМЙГХ УП УФПМВГБНЙ Ч УМЕДХАЭЕН РПТСДЛЕ: city, sname, snum, comm. 4. оБРЙЫЙФЕ ЛПНБОДХ SELECT ЛПФПТБС ЧЩЧЕМБ ВЩ ПГЕОЛХ(rating), УПРТПЧПЦДБЕНХА ЙНЕОЕН ЛБЦДПЗП ЪБЛБЪЮЙЛБ Ч San Jose. 5. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩЧЕМ ВЩ ЪОБЮЕОЙС snum ЧУЕИ РТПДБЧГПЧ Ч ФЕЛХЭЕН РПТСДЛЕ ЙЪ ФБВМЙГЩ рПТСДЛПЧ ВЕЪ ЛБЛЙИ ВЩ ФП ОЙ ВЩМП РПЧФПТЕОЙК. (уН. рТЙМПЦЕОЙЕ A ДМС ПФЧЕФПЧ.)

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