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

Understanding SQL. Chapter 4. йурпмшъпчбойе темсгйпоощи й вхмечщи претбфптпч дмс упъдбойс впмее йъпэтеоощи ртедйлбфпч ч змбче 3, чщ хъобмй юфп ртедйлбфщ нпзхф ПГЕОЙЧБФШ ТБЧЕОУФЧП ПРЕТБФПТБ ЛБЛ ЧЕТОПЗП ЙМЙ ОЕЧЕТОПЗП. пОЙ НПЗХФ ФБЛЦЕ ПГЕОЙЧБФШ ДТХЗЙЕ ЧЙДЩ УЧСЪЕК ЛТПНЕ ТБЧЕОУФЧ. ьФБ ЗМБЧБ ВХДЕФ ЙУУМЕДПЧБФШ ДТХЗЙЕ ТЕМСГЙПООЩЕ ПРЕТБФПТЩ ЙУРПМШЪХЕНЩЕ Ч SQL. чЩ ФБЛЦЕ ХЪОБЕФЕ ЛБЛ ЙУРПМШЪПЧБФШ ПРЕТБФПТЩ вХМС, ЮФПВЩ ЙЪНЕОСФШ Й ПВЯЕДЙОСФШ ЪОБЮЕОЙС РТЕДЙЛБФБ. у РПНПЭША ПРЕТБФПТПЧ вХМС (ЙМЙ РТПЭЕ ЗПЧПТ МПЗЙЮЕУЛЙИ ПРЕТБФПТПЧ), ПДЙОПЮОЩК РТЕДЙЛБФ НПЦЕФ УПДЕТЦБФШ МАВПЕ ЮЙУМП ХУМПЧЙК. ьФП РПЪЧПМСЕФ ЧБН УПЪДБЧБФШ ПЮЕОШ УМПЦОЩЕ РТЕДЙЛБФЩ. йУРПМШЪПЧБОЙЕ ЛТХЗМЩИ УЛПВПЛ Ч УФТХЛФХТЕ ЬФЙИ УМПЦОЩИ РТЕДЙЛБФПЧ ВХДЕФ ФБЛЦЕ ПВЯСУОСФШУС. темсгйпооще претбфптщ тЕМСГЙПООЩК ПРЕТБФПТ - НБФЕНБФЙЮЕУЛЙК УЙНЧПМ ЛПФПТЩК ХЛБЪЩЧБЕФ ОБ ПРТЕДЕМЕООЩК ФЙР УТБЧОЕОЙС НЕЦДХ ДЧХН ЪОБЮЕОЙСНЙ. чЩ ХЦЕ ЧЙДЕМЙ ЛБЛ ЙУРПМШЪХАФУС ТБЧЕОУФЧБ, ФБЛЙЕ ЛБЛ 2 + 3 = 5 ЙМЙ city = "London". оП ФБЛЦЕ ЙНЕАФУС ДТХЗЙЕ ТЕМСГЙПООЩЕ ПРЕТБФПТЩ. рТЕДРПМПЦЙН ЮФП ЧЩ ИПФЙФЕ ЧЙДЕФШ ЧУЕИ рТПДБЧГПЧ У ЙИ ЛПНЙУУЙПООЩНЙ ЧЩЫЕ ПРТЕДЕМЕООПЗП ЪОБЮЕОЙС. чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ФЙР УТБЧОЕОЙС "ВПМШЫЕ ЮЕН" - (>). тЕМСГЙПООЩЕ ПРЕТБФПТЩ ЛПФПТЩНЙ ТБУРПМБЗБЕФ SQL : = тБЧОЩК Л > вПМШЫЕ ЮЕН < нЕОШЫЕ ЮЕН >= вПМШЫЕ ЮЕН ЙМЙ ТБЧОП оЕ ТБЧОП ьФЙ ПРЕТБФПТЩ ЙНЕАФ УФБОДБТФОЩЕ ЪОБЮЕОЙС ДМС ЮЙУМПЧЩИ ЪОБЮЕОЙК. дМС ЪОБЮЕОЙС УЙНЧПМБ, ЙИ ПРТЕДЕМЕОЙЕ ЪБЧЙУЙФ ПФ ЖПТНБФБ РТЕПВТБЪПЧБОЙС, ASCII ЙМЙ EBCDIC, ЛПФПТЩК ЧЩ ЙУРПМШЪХЕФЕ. SQL УТБЧОЙЧБЕФ УЙНЧПМШОЩЕ ЪОБЮЕОЙС Ч ФЕТНЙОБИ ПУОПЧОЩИ ОПНЕТПЧ ЛБЛ ПРТЕДЕМЕОП Ч ЖПТНБФЕ РТЕПВТБЪПЧБОЙС. дБЦЕ ЪОБЮЕОЙЕ УЙНЧПМБ, ФБЛПЗП ЛБЛ "1", ЛПФПТЩК РТЕДУФБЧМСЕФ ОПНЕТ, ОЕ ПВСЪБФЕМШОП ТБЧОСЕФУС ОПНЕТХ ЛПФПТЩК ПО РТЕДУФБЧМСЕФ. чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ТЕМСГЙПООЩЕ ПРЕТБФПТЩ ЮФПВЩ ХУФБОПЧЙФШ БМЖБЧЙФОЩК РПТСДПЛ - ОБРТЙНЕТ, "a" < "n" ЗДЕ УТЕДУФЧП a РЕТЧПЕ Ч БМЖБЧЙФОПН РПТСДЛЕ - ОП ЧУЕ ЬФП ПЗТБОЙЮЙЧБЕФУС У РПНПЭША РБТБНЕФТБ РТЕПВТБЪПЧБОЙС ЖПТНБФБ. й Ч ASCII Й Ч EBCDIC, УЙНЧПМЩ - РП ЪОБЮЕОЙА: НЕОШЫЕ ЮЕН ЧУЕ ДТХЗЙЕ УЙНЧПМЩ ЛПФПТЩН ПОЙ РТЕДЫЕУФЧХАФ Ч БМЖБЧЙФОПН РПТСДЛЕ Й ЙНЕАФ ПДЙО ЧБТЙБОФ( ЧЕТИОЙК ЙМЙ ОЙЦОЙК ). ч ASCII, ЧУЕ УЙНЧПМЩ ЧЕТИОЕЗП ТЕЗЙУФТБ - НЕОШЫЕ ЮЕН ЧУЕ УЙНЧПМЩ ОЙЦОЕЗП ТЕЗЙУФТБ, РПЬФПНХ "Z" < "a", Б ЧУЕ ОПНЕТБ - НЕОШЫЕ ЮЕН ЧУЕ УЙНЧПМЩ, РПЬФПНХ "1" < "Z". фП ЦЕ ПФОПУЙФУС Й Л EBCDIC. юФПВЩ УПИТБОЙФШ ПВУХЦДЕОЙЕ ВПМЕЕ РТПУФЩН, НЩ ДПРХУФЙН ЮФП ЧЩ ВХДЕФЕ ЙУРПМШЪПЧБФШ ФЕЛУФПЧЩК ЖПТНБФ ASCII. рТПЛПОУХМШФЙТХКФЕУШ У ЧБЫЕК ДПЛХНЕОФБГЙЕК УЙУФЕНЩ ЕУМЙ ЧЩ ОЕХЧЕТЕООЩ ЛБЛПК ЖПТНБФ ЧЩ ЙУРПМШЪХЕФЕ ЙМЙ ЛБЛ ПО ТБВПФБЕФ. ъОБЮЕОЙС УТБЧОЙЧБЕНЩЕ ЪДЕУШ ОБЪЩЧБАФУС - УЛБМСТОЩНЙ ЪОБЮЕОЙСНЙ. уЛБМСТОЩЕ ЪОБЮЕОЙС РТПЙЪЧПДСФУС УЛБМСТОЩНЙ ЧЩТБЦЕОЙСНЙ; 1 + 2 - ЬФП УЛБМСТОПЕ ЧЩТБЦЕОЙЕ ЛПФПТПЕ РТПЙЪЧПДЙФ УЛБМСТОПЕ ЪОБЮЕОЙЕ 3. уЛБМСТОПЕ ЪОБЮЕОЙЕ НПЦЕФ ВЩФШ УЙНЧПМПН ЙМЙ ЮЙУМПН, ИПФС ПЮЕЧЙДОП ЮФП ФПМШЛП ОПНЕТБ ЙУРПМШЪХАФУС У БТЙЖНЕФЙЮЕУЛЙНЙ ПРЕТБФПТБНЙ, ФБЛЙНЙ ЛБЛ +(РМАУ) ЙМЙ *(ЪЧЕЪДБ). рТЕДЙЛБФЩ ПВЩЮОП УТБЧОЙЧБАФ ЪОБЮЕОЙС УЛБМСТОЩИ ЧЕМЙЮЙО, ЙУРПМШЪХС ЙМЙ ТЕМСГЙПООЩЕ ПРЕТБФПТЩ ЙМЙ УРЕГЙБМШОЩЕ ПРЕТБФПТЩ SQL ЮФПВЩ ХЧЙДЕФШ ЧЕТОП МЙ ЬФП УТБЧОЕОЙЕ. оЕЛПФПТЩЕ ПРЕТБФПТЩ SQL ПРЙУБОЩ Ч зМБЧЕ 5. рТЕДРПМПЦЙН ЮФП ЧЩ ИПФЙФЕ ХЧЙДЕФШ ЧУЕИ ЪБЛБЪЮЙЛПЧ У ПГЕОЛПК(rating) ЧЩЫЕ 200. фБЛ ЛБЛ 200 - ЬФП УЛБМСТОПЕ ЪОБЮЕОЙЕ, ЛБЛ Й ЪОБЮЕОЙЕ Ч УФПМВГЕ ПГЕОЛЙ, ДМС ЙИ УТБЧОЕОЙС ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ ТЕМСГЙПООЩК ПРЕТБФПТ. SELECT * FROM Customers WHERE rating > 200; чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 4.1. лПОЕЮОП, ЕУМЙ ВЩ НЩ ЪБИПФЕМЙ ХЧЙДЕФШ ЕЭЕ Й ЪБЛБЪЮЙЛПЧ У ПГЕОЛПК ТБЧОПК 200, НЩ УФБМЙ ВЩ ЙУРПМШЪПЧБФШ РТЕДЙЛБФ rating > = 200 вхмечщ претбфптщ пУОПЧОЩЕ вХМЕЧЩ ПРЕТБФПТЩ ФБЛЦЕ ТБУРПЪОБАФУС Ч SQL. чЩТБЦЕОЙС вХМС - СЧМСАФУС ЙМЙ ЧЕТОЩНЙ ЙМЙ ОЕЧЕТОЩНЙ, РПДПВОП РТЕДЙЛБФБН. вХМЕЧЩ ПРЕТБФПТЩ УЧСЪЩЧБАФ ПДОП ЙМЙ ВПМЕЕ ЧЕТОЩИ/ОЕЧЕТОЩИ ЪОБЮЕОЙК Й РТПЙЪЧПДСФ ЕДЙОУФЧЕООПЕ ЧЕТОПЕ/ЙМЙ/ОЕЧЕТОПЕ ЪОБЮЕОЙЕ. уФБОДБТФОЩНЙ ПРЕТБФПТБНЙ вХМС ТБУРПЪОБЧБЕНЩНЙ Ч SQL СЧМСАФУС: AND, OR, Й NOT. =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE rating > 200; | | ============================================= | | snum cname city rating snum | | ----- -------- -------- ----- ------ | | 2004 Crass Berlin 300 1002 | | 2008 Cirneros San Jose 300 1007 | ============================================= тЙУХОПЛ 4.1: йУРПМШЪПЧБОЙЕ ВПМШЫЕ ЮЕН (>) уХЭЕУФЧХАФ ДТХЗЙЕ, ВПМЕЕ УМПЦОЩЕ, ПРЕТБФПТЩ вХМС ( ФЙРБ " ЙУЛМАЮЕООЩК ЙМЙ " ), ОП ПОЙ НПЗХФ ВЩФШ УЖПТНЙТПЧБОЩ ЙЪ ЬФЙИ ФТЕИ РТПУФЩИ ПРЕТБФПТПЧ - AND, OR, NOT. лБЛ ЧЩ НПЦЕФЕ РПОСФШ, вХМЕЧБ ЧЕТО / ОЕЧЕТОБ МПЗЙЛБ - ПУОПЧБОБ ОБ ГЙЖТПЧПК ЛПНРШАФЕТОПК ПРЕТБГЙЙ; Й ЖБЛФЙЮЕУЛЙ, ЧЕУШ SQL( ЙМЙ МАВПК ДТХЗПК СЪЩЛ ) НПЦЕФ ВЩФШ УЧЕДЕО ДП ХТПЧОС вХМЕЧПК МПЗЙЛЙ. пРЕТБФПТЩ вХМС Й ЛБЛ ПОЙ ТБВПФБАФ: * AND ВЕТЕФ ДЧБ вХМС ( Ч ЖПТНЕ A AND B) ЛБЛ БТЗХНЕОФЩ Й ПГЕОЙЧБЕФ ЙИ РП ПФОПЫЕОЙА Л ЙУФЙОЕ, ЧЕТОЩ МЙ ПОЙ ПВБ. * OR ВЕТЕФ ДЧБ вХМС ( Ч ЖПТНЕ A OR B) ЛБЛ БТЗХНЕОФЩ Й ПГЕОЙЧБЕФ ОБ РТБЧЙМШОПУФШ, ЧЕТЕО МЙ ПДЙО ЙЪ ОЙИ. * NOT ВЕТЕФ ПДЙОПЮОЩК вХМЕЧ ( Ч ЖПТНЕ NOT A) ЛБЛ БТЗХНЕОФЩ Й ЪБНЕОСЕФ ЕЗП ЪОБЮЕОЙЕ У ОЕЧЕТОПЗП ОБ ЧЕТОПЕ ЙМЙ ЧЕТОПЕ ОБ ОЕЧЕТОПЕ. уЧСЪЩЧБС РТЕДЙЛБФЩ У ПРЕТБФПТБНЙ вХМС, ЧЩ НПЦЕФЕ ЪОБЮЙФЕМШОП ХЧЕМЙЮЙФШ ЙИ ЧПЪНПЦОПУФЙ. рТЕДРПМПЦЙН ЧЩ ИПФЙФЕ ЧЙДЕФШ ЧУЕИ ЪБЛБЪЮЙЛПЧ Ч San Jose ЛПФПТЩЕ ЙНЕАФ ПГЕОЛХ(ТЕКФЙОЗ) ЧЩЫЕ 200: SELECT * FROM Customers WHERE city = " San Jose' AND rating > 200; чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪБО ОБ тЙУХОЛЕ 4.2. йНЕЕФУС ФПМШЛП ПДЙО ЪБЛБЪЮЙЛ ЛПФПТЩК ХДПЧМЕФЧПТСЕФ ЬФПНХ ХУМПЧЙА. еУМЙ ЧЩ ЦЕ ЙУРПМШЪХЕФЕ OR ЧЩ РПМХЮЙФЕ ЧУЕИ ЪБЛБЪЮЙЛПЧ ЛПФПТЩЕ ОБИПДЙМЙУШ Ч San Jose ЙМЙ(OR) ЛПФПТЩЕ ЙНЕМЙ ПГЕОЛХ ЧЩЫЕ 200. =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE city = 'San Jose' | | AND rating > 200; | | ============================================= | | Уnum cname city rating snum | | ------ -------- -------- ---- ----- | | 2008 Cirneros San Jose 300 1007 | ============================================= тЙУХОПЛ 4.2: SELECT ЙУРПМШЪХАЭЙК AND SELECT * FROM Customers WHERE city = " San Jose' OR rating > 200; чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 4.3. NOT НПЦЕФ ЙУРПМШЪПЧБФШУС ДМС ЙОЧЕТФЙТПЧБОЙС ЪОБЮЕОЙК вХМС. йНЕЕФУС РТЙНЕТ ЪБРТПУБ У NOT: SELECT * FROM Customers WHERE city = " San Jose' OR NOT rating > 200; чЩЧПД ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 4.4. =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE city = 'San Jose' | | OR rating > 200; | | ============================================= | | Уnum cname city rating snum | | ----- ------- -------- ----- ------ | | 2003 Liu San Jose 200 1002 | | 2004 Grass Berlin 300 1002 | | 2008 Cirneros San Jose 300 1007 | ============================================= тЙУХОПЛ 4.:3: SELECT ЙУРПМШЪХАЭЙК OR =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE city = 'San Jose' | | OR NOT rating > 200; | | ============================================= | | cnum cname city rating snum | | ------ -------- ------ ----- ----- | | 2001 Hoffman London 100 1001 | | 2002 Giovanni Rome 200 1003 | | 2003 Liu San Jose 200 1002 | | 2006 Clemens London 100 1001 | | 2008 Cirneros San Jose 300 1007 | | 2007 Pereira Rome 100 1004 | ============================================= тЙУХОПЛ 4.4: SELECT ЙУРПМШЪХАЭЙК NOT чУЕ ЪБРЙУЙ ЪБ ЙУЛМАЮЕОЙЕН Grass ВЩМЙ ЧЩВТБОЩ. Grass ОЕ ВЩМ Ч San Jose, Й ЕЗП ПГЕОЛБ ВЩМБ ВПМШЫЕ ЮЕН 200, ФБЛ ЮФП ПО РПФЕТРЕМ ОЕХДБЮХ РТЙ ПВЕЙИ РТПЧЕТЛБИ. ч ЛБЦДПК ЙЪ ДТХЗЙИ УФТПЛ ЧУФТЕФЙМУС ПДЙО ЙМЙ ДТХЗПК ЙМЙ ПВБ ЛТЙФЕТЙЕЧ. пВТБФЙФЕ ЧОЙНБОЙЕ ЮФП ПРЕТБФПТ NOT ДПМЦЕО РТЕДЫЕУФЧПЧБФШ вХМЕЧХ ПРЕТБФПТХ, ЮШЕ ЪОБЮЕОЙЕ ДПМЦОП ЙЪНЕОЙФШУС, Й ОЕ ДПМЦЕО РПНЕЭБФШУС РЕТЕД ТЕМСГЙПООЩН ПРЕТБФПТПН. оБРТЙНЕТ ОЕРТБЧЙМШОЩН ЧЧПДПН ПГЕОЛЙ РТЕДЙЛБФБ ВХДЕФ: rating NOT > 200 пО ЧЩДБУФ ДТХЗХА ПФНЕФЛХ. б ЛБЛ SQL ПГЕОЙФ УМЕДХАЭЕЕ? SELECT * FROM Customers WHERE NOT city = " San Jose' OR rating > 200; NOT РТЙНЕОСЕФУС ЪДЕУШ ФПМШЛП Л ЧЩТБЦЕОЙА city = 'SanJose', ЙМЙ Л ЧЩТБЦЕОЙА rating > 200 ФПЦЕ ? лБЛ Й ОБРЙУБОП, РТБЧЙМШОЩК ПФЧЕФ ВХДЕФ РТЕЦОЙН. SQL НПЦЕФ РТЙНЕОСФШ NOT У ЧЩТБЦЕОЙЕН вХМС ФПМШЛП УТБЪХ РПУМЕ ОЕЗП. чЩ НПЦЕФЕ РПМХЮЙФШ ДТХЗПК ТЕЪХМШФБФ РТЙ ЛПНБОДЕ: SELECT * FROM Customers WHERE NOT( city = " San Jose' OR rating > 200 ); ъДЕУШ SQL РПОЙНБЕФ ЛТХЗМЩЕ УЛПВЛЙ ЛБЛ ПЪОБЮБАЭЙЕ, ЮФП ЧУЕ ЧОХФТЙ ОЙИ ВХДЕФ ПГЕОЙЧБФШУС РЕТЧЩН Й ПВТБВБФЩЧБФШУС ЛБЛ ЕДЙОПЕ ЧЩТБЦЕОЙЕ У РПНПЭША ЧУЕЗП ЮФП УОБТХЦЙ ОЙИ ( ЬФП СЧМСЕФУС УФБОДБТФОПК ЙОФЕТРТЕФБГЙЕК Ч НБФЕНБФЙЛЕ ). дТХЗЙНЙ УМПЧБНЙ, SQL ВЕТЕФ ЛБЦДХА УФТПЛХ Й ПРТЕДЕМСЕФ, УППФЧЕФУФЧХЕФ МЙ ЙУФЙОЕ ТБЧЕОУФЧП city = " San Jose' ЙМЙ ТБЧЕОУФЧП rating > 200. еУМЙ МАВПЕ ХУМПЧЙЕ ЧЕТОП, ЧЩТБЦЕОЙЕ вХМС ЧОХФТЙ ЛТХЗМЩИ УЛПВПЛ ЧЕТОП. пДОБЛП, ЕУМЙ ЧЩТБЦЕОЙЕ вХМС ЧОХФТЙ ЛТХЗМЩИ УЛПВПЛ ЧЕТОП, РТЕДЙЛБФ ЛБЛ ЕДЙОПЕ ГЕМПЕ ОЕЧЕТЕО, РПФПНХ ЮФП NOT РТЕПВТБЪХЕФ ЧЕТОП Ч ОЕЧЕТОП Й ОБПВПТПФ. чЩЧПД ДМС ЬФПЗП ЪБРТПУБ - РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 4.5. йНЕЕФУС ОБНЕТЕООП УМПЦОЩК РТЙНЕТ. рПУНПФТЙН УНПЦЕФЕ МЙ ЧЩ РТПУМЕДЙФШ ЕЗП МПЗЙЛХ (ЧЩЧПД РПЛБЪБО Ч тЙУХОЛЕ 4.6 ): SELECT * FROM Orders WHERE NOT ((odate = 10/03/1990 AND snum >1002) OR amt > 2000.00); =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE NOT (city = 'San Jose' | | OR rating > 200); | | ============================================= | | cnum cname city rating snum | | ----- -------- ------- ----- ------ | | 2001 Hoffman London 100 1001 | | 2002 Giovanni Rome 200 1003 | | 2006 Clemens London 100 1001 | | 2007 Pereira Rome 100 1004 | ============================================= тЙУХОПЛ 4.5: SELECT ЙУРПМШЪХАЭЙК NOT Й ЧЧПДОПЕ РТЕДМПЦЕОЙЕ =============== SQL Execution Log ============== | | | SELECT * | | FROM Orders | | WHERE NOT ((odate = 10/03/1990 AND snum > 1002) | | OR amt > 2000.00); | | =============================================== | | onum amt odate cnum snum | | ------ -------- ---------- ----- ----- | | 3003 767.19 10/03/1990 2001 1001 | | 3009 1713.23 10/04/1990 2002 1003 | | 3007 75.75 10/04/1990 2004 1002 | | 3010 1309.95 10/06/1990 2004 1002 | ================================================= тЙУХОПЛ 4.6: рПМОЩК (ЛПНРМЕЛУОЩК) ЪБРТПУ оЕУНПФТС ОБ ФП ЮФП вХМЕЧЩ ПРЕТБФПТЩ ЙОДЙЧЙДХБМШОП РТПУФЩ, ПОЙ ОЕ ФБЛ РТПУФЩ ЛПЗДБ ЛПНВЙОЙТХАФУС Ч ЛПНРМЕЛУОПЕ ЧЩТБЦЕОЙЕ. уРПУПВ ПГЕОЛЙ ЛПНРМЕЛУБ вХМЕЧБ УПУФПЙФ Ч ФПН, ЮФПВЩ ПГЕОЙЧБФШ вХМЕЧЩ ЧЩТБЦЕОЙС ОБЙВПМЕЕ ЗМХВПЛП ЧМПЦЕООЩЕ Ч ЛТХЗМЩИ УЛПВЛБИ, ПВЯЕДЙОСФШ ЙИ Ч ЕДЙОЙЮОПЕ вХМЕЧП ЪОБЮЕОЙЕ, Й ЪБФЕН ПВЯЕДЙОСФШ ЕЗП У ЧЕТИОЙНЙ ЪОБЮЕОЙСНЙ. йНЕЕФУС РПДТПВОПЕ ПВЯСУОЕОЙЕ ФПЗП ЛБЛ РТЙНЕТ ЧЩЫЕ ВЩМ ЧЩЮЙУМЕО. оБЙВПМЕЕ ЗМХВПЛП ЧМПЦЕООЩЕ ЧЩТБЦЕОЙС вХМС Ч РТЕДЙЛБФЕ - ЬФП odate = 10/03/1990 Й snum > 1002 СЧМСАФУС ПВЯЕДЙОЕООЩНЙ У РПНПЭША AND, ЖПТНЙТХС ПДОП ЧЩТБЦЕОЙЕ вХМС ЛПФПТПЕ ВХДЕФ ПГЕОЕОП ЛБЛ ЧЕТОПЕ ДМС ЧУЕИ УФТПЛ Ч ЛПФПТЩИ ЧУФТЕФЙМЙУШ ПВБ ЬФЙ ХУМПЧЙС. ьФП УПУФБЧОПЕ вХМЕЧП ЧЩТБЦЕОЙЕ (ЛПФПТПЕ НЩ ВХДЕН ОБЪЩЧБФШ вХМЕЧП ОПНЕТ 1, ЙМЙ B1 ДМС ЛТБФЛПУФЙ) ПВЯЕДЙОСЕФУС У ЧЩТБЦЕОЙЕН (amt) > 2000.00 (B2) У РПНПЭША OR, ЖПТНЙТХС ФТЕФШЕ ЧЩТБЦЕОЙЕ (B3), ЛПФПТПЕ СЧМСЕФУС ЧЕТОЩН ДМС ДБООПК УФТПЛЙ, ЕУМЙ ЙМЙ B1 ЙМЙ B2 - ЧЕТОЩ ДМС ЬФПК УФТПЛЙ. B3 РПМОПУФША УПДЕТЦЙФУС Ч ЛТХЗМЩИ УЛПВЛБИ ЛПФПТЩН РТЕДЫЕУФЧХЕФ NOT, ЖПТНЙТХС РПУМЕДОЕЕ ЧЩТБЦЕОЙЕ вХМС(B4), ЛПФПТПЕ СЧМСЕФУС ХУМПЧЙЕН РТЕДЙЛБФБ. фБЛЙН ПВТБЪПН B4, РТЕДЙЛБФ ЪБРТПУБ, - ВХДЕФ ЧЕТЕО ЧУСЛЙК ТБЪ, ЛПЗДБ B3 ОЕРТБЧЙМЕО. B3 - ОЕРТБЧЙМЕО ЧУЕЗДБ, ЛПЗДБ B1 Й B2 - ПВБ ОЕЧЕТОЩ. B1 ОЕРТБЧЙМЕО ДМС УФТПЛЙ ЕУМЙ ДБФБ РПТСДЛБ УФТПЛЙ ОЕ 10/03/1990, ЙМЙ ЕУМЙ ЪОБЮЕОЙЕ snum ОЕ ВПМШЫЕЕ ЮЕН 1002. B2 ОЕРТБЧЙМЕО ДМС ЧУЕИ УФТПЛ, ЪОБЮЕОЙС УХННЩ РТЙПВТЕФЕОЙК ЛПФПТЩИ ОЕ РТЕЧЩЫБЕФ 2000.00. мАВБ УФТПЛБ УП ЪОБЮЕОЙЕН ЧЩЫЕ 2000.00 УДЕМБЕФ B2 - ЧЕТОЩН; Ч ТЕЪХМШФБФЕ B3 ВХДЕФ ЧЕТЕО, Б B4 ОЕФ. уМЕДПЧБФЕМШОП, ЧУЕ ЬФЙ УФТПЛЙ ВХДХФ ХДБМЕОЩ ЙЪ ЧЩЧПДБ. йЪ ПУФБЧЫЙИУС, УФТПЛЙ ЛПФПТЩЕ ОБ 3 пЛФСВТС ЙНЕАФ snum > 1002 ( ФБЛЙЕ ЛБЛ УФТПЛЙ ДМС onum 3001 ОБ 3 пЛФСВТС УП snum = 1007 ), ДЕМБАФ B1 ЧЕТОЩН, У РПНПЭША ЧЕТОПЗП B3 Й ОЕЧЕТОПЗП РТЕДЙЛБФБ ЪБРТПУБ. пОЙ ВХДХФ ФБЛЦЕ ХДБМЕОЩ ЙЪ ЧЩЧПДБ. чЩЧПД РПЛБЪБО ДМС УФТПЛ ЛПФПТЩЕ ПУФБЧМЕОЩ. теъане ч ЬФПК ЗМБЧЕ, ЧЩ ЪОБЮЙФЕМШОП ТБУЫЙТЙМЙ ЧБЫЕ ЪОБЛПНУФЧП У РТЕДЙЛБФБНЙ. фЕРЕТШ ЧЩ НПЦЕФЕ ОБИПДЙФШ ЪОБЮЕОЙС ЛПФПТЩЕ УЧСЪБОЩ У ДБООЩН ЪОБЮЕОЙЕН МАВЩН УРПУПВПН - ПРТЕДЕМСЕНЩН ТБЪМЙЮОЩНЙ ТЕМСГЙПООЩНЙ ПРЕТБФПТБНЙ. чЩ НПЦЕФЕ ФБЛЦЕ ЙУРПМШЪПЧБФШ ПРЕТБФПТЩ вХМС AND Й OR ЮФПВЩ НОПЗП ХУМПЧЙК, ЛБЦДПЕ ЙЪ ЛПФПТЩИ БЧФПОПНОП Ч РТЕДЙЛБФБИ, ПВЯЕДЙОСФШ Ч ЕДЙОЩК РТЕДЙЛБФ. пРЕТБФПТ вХМС NOT, ЛБЛ ЧЩ ХЦЕ ЧЙДЕМЙ, НПЦЕФ ЙЪНЕОСФШ ЪОБЮЕОЙЕ ХУМПЧЙС ЙМЙ ЗТХРРЩ ХУМПЧЙК ОБ РТПФЙЧПРПМПЦОПЕ. вХМЕЧЩ Й тЕМСГЙПООЩЕ ПРЕТБФПТЩ НПЗХФ ЬЖЖЕЛФЙЧОП ХРТБЧМСФШУС У РПНПЭША ЛТХЗМЩИ УЛПВПЛ, ЛПФПТЩЕ ПРТЕДЕМСАФ РПТСДПЛ, Ч ЛПФПТПН ПРЕТБГЙЙ ВХДХФ ЧЩРПМОЕОЩ. ьФЙ ПРЕТБГЙЙ РТЙНЕОЙНЩ Л МАВПНХ ХТПЧОА УМПЦОПУФЙ Й ЧЩ РПОСМЙ ЛБЛ УМПЦОЩЕ ХУМПЧЙС НПЗХФ УПЪДБЧБФШУС ЙЪ ЬФЙИ РТПУФЩИ ЮБУФЕК. фЕРЕТШ, ЛПЗДБ НЩ РПЛБЪБМЙ ЛБЛ ЙУРПМШЪХАФУС УФБОДБТФОЩЕ НБФЕНБФЙЮЕУЛЙЕ ПРЕТБФПТЩ, НЩ НПЦЕН РЕТЕКФЙ Л ПРЕТБФПТБН ЛПФПТЩЕ СЧМСАФУС ЙУЛМАЮЙФЕМШОЩНЙ Ч SQL. ьФП НЩ УДЕМБЕН Ч зМБЧЕ 5. тбвпфб у SQL 1. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК НПЦЕФ ДБФШ ЧБН ЧУЕ РПТСДЛЙ УП ЪОБЮЕОЙСНЙ УХННЩ ЧЩЫЕ ЮЕН $1,000. 2. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК НПЦЕФ ЧЩДБФШ ЧБН РПМ sname Й city ДМС ЧУЕИ РТПДБЧГПЧ Ч мПОДПОЕ У ЛПНЙУУЙПООЩНЙ ЧЩЫЕ .10 . 3. оБРЙЫЙФЕ ЪБРТПУ Л ФБВМЙГЕ ъБЛБЪЮЙЛПЧ ЮЕК ЧЩЧПД НПЦЕФ ЧЛМАЮЙФШ ЧУЕИ ЪБЛБЪЮЙЛПЧ У ПГЕОЛПК =< 100, ЕУМЙ ПОЙ ОЕ ОБИПДСФУС Ч тЙНЕ. 4. юФП НПЦЕФ ВЩФШ ЧЩЧЕДЕОП Ч ТЕЪХМШФБФЕ УМЕДХАЭЕЗП ЪБРТПУБ ? SELECT * FROM Orders WHERE (amt < 1000 OR NOT (odate = 10/03/1990 AND cnum > 2003 )); 5. юФП НПЦЕФ ВЩФШ ЧЩЧЕДЕОП Ч ТЕЪХМШФБФЕ УМЕДХАЭЕЗП ЪБРТПУБ ? SELECT * FROM Orders WHERE NOT ((odate = 10/03/1990 OR snum > 1006) AND amt > = 1500 ); 6. лБЛ НПЦОП РТПЭЕ РЕТЕРЙУБФШ ФБЛПК ЪБРТПУ ? SELECT snum, sname, city, comm FROM Salespeople WHERE ( comm > + .12 OR comm < .14 ); (уН. рТЙМПЦЕОЙЕ A ДМС ПФЧЕФПЧ.)

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