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

Understanding SQL. Chapter 5 йурпмшъпчбойе урегйбмшощи претбфптпч ч хумпчйси ч дпрпмоеойй л темсгйпоощн й вхмечулйн ПРЕТБФПТБН ПВУХЦДБЕНЩН Ч зМБЧЕ 4, SQL ЙУРПМШЪХЕФ УРЕГЙБМШОЩЕ ПРЕТБФПТЩ IN, BETWEEN, LIKE, Й IS NULL. ч ЬФПК ЗМБЧЕ, ЧЩ ХЪОБЕФЕ ЛБЛ ЙИ ЙУРПМШЪПЧБФШ Й ЛБЛ ТЕМСГЙПООЩЕ ПРЕТБФПТЩ РПЪЧПМСАФ УПЪДБЧБФШ ВПМЕЕ УМПЦОЩЕ Й НПЭОЩЕ РТЕДЙЛБФЩ. пВУХЦДЕОЙЕ ПРЕТБФПТБ IS NULL ВХДЕФ ЧЛМАЮБФШ ПФУХФУФЧЙЕ ДБООЩИ Й ЪОБЮЕОЙЕ NULL, ЛПФПТПЕ ХЛБЪЩЧБЕФ ОБ ФП: ЮФП ДБООЩЕ ПФУХФУФЧХАФ. чЩ ФБЛЦЕ ХЪОБЕФЕ П ТБЪОПЧЙДОПУФСИ ЙУРПМШЪПЧБОЙС ПРЕТБФПТБ NOT РТЙНЕОСАЭЕЗПУС У ЬФЙНЙ ПРЕТБФПТБНЙ. претбфпт IN пРЕТБФПТ IN ПРТЕДЕМСЕФ ОБВПТ ЪОБЮЕОЙК Ч ЛПФПТПЕ ДБООПЕ ЪОБЮЕОЙЕ НПЦЕФ ЙМЙ ОЕ НПЦЕФ ВЩФШ ЧЛМАЮЕОП. ч УППФЧЕФУФЧЙЙ У ОБЫЕК ХЮЕВОПК ВБЪПК ДБООЩИ ОБ ЛПФПТПК ЧЩ ПВХЮБЕФЕУШ РП ОБУФПСЭЕЕ ЧТЕНЕО, ЕУМЙ ЧЩ ИПФЙФЕ ОБКФЙ ЧУЕИ РТПДБЧГПЧ, ЛПФПТЩЕ ТБЪНЕЭЕОЩ Ч Barcelona ЙМЙ Ч London, ЧЩ ДПМЦОЩ ЙУРПМШЪПЧБФШ УМЕДХАЭЙК ЪБРТПУ ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.1 ): SELECT * FROM Salespeople WHERE city = 'Barcelona' OR city = 'London'; йНЕЕФУС Й ВПМЕЕ РТПУФПК УРПУПВ РПМХЮЙФШ ФХ ЦЕ ЙОЖПТНБГЙА: SELECT * FROM Salespeople WHERE city IN ( 'Barcelona', 'London' ); чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.2. лБЛ ЧЩ НПЦЕФЕ ЧЙДЕФШ, IN ПРТЕДЕМСЕФ ОБВПТ ЪОБЮЕОЙК У РПНПЭША ЙНЕО ЮМЕОПЧ ОБВПТБ ЪБЛМАЮЕООЩИ Ч ЛТХЗМЩЕ УЛПВЛЙ Й ПФДЕМЕООЩИ ЪБРСФЩНЙ. пО ЪБФЕН РТПЧЕТСЕФ ТБЪМЙЮОЩЕ ЪОБЮЕОЙС ХЛБЪБООПЗП РПМ РЩФБСУШ ОБКФЙ УПЧРБДЕОЙЕ УП ЪОБЮЕОЙСНЙ ЙЪ ОБВПТБ. еУМЙ ЬФП УМХЮБЕФУС, ФП РТЕДЙЛБФ ЧЕТЕО. лПЗДБ ОБВПТ УПДЕТЦЙФ ЪОБЮЕОЙС ОПНЕТПЧ Б ОЕ УЙНЧПМПЧ, ПДЙОПЮОЩЕ ЛБЧЩЮЛЙ ПРХУЛБАФУС. дБЧБКФЕ ОБКДЕН ЧУЕИ ЪБЛБЪЮЙЛПЧ ПФОПУСЭЙИУС Л РТПДБЧГБН ЙНЕАЭЙИ ЪОБЮЕОЙС snum = 1001, 1007, Й 1004. чЩЧПД ДМС УМЕДХАЭЕЗП ЪБРТПУБ РПЛБЪБО ОБ тЙУХОЛЕ 5.3: SELECT * FROM Customers WHERE cnum IN ( 1001, 1007, 1004 ); =============== SQL Execution Log ============ | | | SELECT * | | FROM Salespeople | | WHERE city = 'Barcelona' | | OR city = 'London'; | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1001 Peel London 0.12 | | 1004 Motika London 0.11 | | 1007 Rifkin Barcelona 0.15 | | | =============================================== тЙУХОПЛ 5.1 оБИПЦДЕОЙЕ РТПДБЧГПЧ Ч вБТУЕМПОЕ Й мПОДПОЕ =============== SQL Execution Log ============ | | | SELECT * | | FROM Salespeople | | WHERE city IN ('Barcelona', 'London'; | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1001 Peel London 0.12 | | 1004 Motika London 0.11 | | 1007 Rifkin Barcelona 0.15 | | | =============================================== тЙУХОПЛ 5.2 SELECT ЙУРПМШЪХЕФ IN =============== SQL Execution Log ============ | SELECT * | | FROM Customers | | WHERE snum IN ( 1001, 1007, 1004 ); | | ============================================= | | snum cname city rating snum | | ------ -------- ------ ---- ------ | | 2001 Hoffman London 100 1001 | | 2006 Clemens London 100 1001 | | 2008 Cisneros San Jose 300 1007 | | 2007 Pereira Rome 100 1004 | ============================================= тЙУХОПЛ 5.3: SELECT ЙУРПМШЪХЕФ IN У ОПНЕТБНЙ претбфпт BETWEEN пРЕТБФПТ BETWEEN РПИПЦ ОБ ПРЕТБФПТ IN. ч ПФМЙЮЙЙ ПФ ПРТЕДЕМЕОЙС РП ОПНЕТБН ЙЪ ОБВПТБ, ЛБЛ ЬФП ДЕМБЕФ IN, BETWEEN ПРТЕДЕМСЕФ ДЙБРБЪПО, ЪОБЮЕОЙС ЛПФПТПЗП ДПМЦОЩ ХНЕОШЫБФШУС ЮФП ДЕМБЕФ РТЕДЙЛБФ ЧЕТОЩН. чЩ ДПМЦОЩ ЧЧЕУФЙ ЛМАЮЕЧПЕ УМПЧП BETWEEN У ОБЮБМШОЩН ЪОБЮЕОЙЕН, ЛМАЮЕЧПЕ AND Й ЛПОЕЮОПЕ ЪОБЮЕОЙЕ. ч ПФМЙЮЙЕ ПФ IN, BETWEEN ЮХЧУФЧЙФЕМЕО Л РПТСДЛХ, Й РЕТЧПЕ ЪОБЮЕОЙЕ Ч РТЕДМПЦЕОЙЙ ДПМЦОП ВЩФШ РЕТЧЩН РП БМЖБЧЙФОПНХ ЙМЙ ЮЙУМПЧПНХ РПТСДЛХ. ( пВТБФЙФЕ чОЙНБОЙЕ ЮФП, Ч ПФМЙЮЙЕ ПФ бОЗМЙКУЛПЗП СЪЩЛБ, SQL ОЕ ЗПЧПТЙФ ЮФП "ЪОБЮЕОЙЕ ОБИПДЙФУС (НЕЦДХ)BETWEEN ЪОБЮЕОЙЕН Й ЪОБЮЕОЙЕН", Б РТПУФП "ЪОБЮЕОЙЕ BETWEEN ЪОБЮЕОЙЕ ЪОБЮЕОЙЕ". ьФП РТЙНЕОЙНП Й Л ПРЕТБФПТХ LIKE). уМЕДХАЭЙК РТЙНЕТ ВХДЕФ ЙЪЧМЕЛБФШ ЙЪ ФБВМЙГЩ рТПДБЧГПЧ ЧУЕИ РТПДБЧГПЧ У ЛПНЙУУЙПООЩНЙ НЕЦДХ .10 Й .12 (ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.4): SELECT * FROM Salespeople WHERE comm BETWEEN .10 AND .12; дМС ЧЛМАЮЕООПЗП ПРЕТБФПТБ BETWEEN, ЪОБЮЕОЙЕ УПЧРБДБАЭЕЕ У МАВЩН ЙЪ ДЧХИ ЪОБЮЕОЙК ЗТБОЙГЩ ( Ч ЬФПН УМХЮБЕ, .10 Й .12 ) ЪБУФБЧМСЕФ РТЕДЙЛБФ ВЩФШ ЧЕТОЩН. =============== SQL Execution Log ============ | SELECT * | | FROM Salespeople | | WHERE comm BETWEEN .10 AND .12; | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1001 Peel London 0.12 | | 1004 Motika London 0.11 | | 1003 Axelrod New York 0.10 | ============================================= тЙУХОПЛ 5.4: SELECT ЙУРПМШЪХЕФ BETWEEN SQL ОЕ ДЕМБЕФ ОЕРПУТЕДУФЧЕООПК РПДДЕТЦЛЙ ОЕЧЛМАЮЕОЙС BETWEEN. чЩ ДПМЦОЩ ЙМЙ ПРТЕДЕМЙФШ ЧБЫЙ ЗТБОЙЮОЩЕ ЪОБЮЕОЙС ФБЛ, ЮФПВЩ ЧЛМАЮБАЭБС ЙОФЕТРТЕФБГЙС ВЩМБ РТЙЕНМЕНБ, ЙМЙ УДЕМБФШ ЮФП-ОЙВХДШ ФЙРБ ЬФПЗП: SELECT * FROM Salespeople WHERE ( comm BETWEEN .10, AND .12 ) AND NOT comm IN ( .10, .12 ); чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.5. рП ПВЭЕНХ РТЙЪОБОЙА, ЬФП ОЕНОПЗП ОЕХЛМАЦЕ, ОП ЪБФП РПЛБЪЩЧБЕФ ЛБЛ ЬФЙ ОПЧЩЕ ПРЕТБФПТЩ НПЗХФ ЛПНВЙОЙТПЧБФШУС У ПРЕТБФПТБНЙ вХМС ЮФПВЩ РТПЙЪЧПДЙФШ ВПМЕЕ УМПЦОЩЕ РТЕДЙЛБФЩ. ч ПУОПЧОПН, ЧЩ ЙУРПМШЪХЕФЕ IN Й BETWEEN ФБЛЦЕ ЛБЛ ЧЩ ЙУРПМШЪПЧБМЙ ТЕМСГЙПООЩЕ ПРЕТБФПТЩ ЮФПВЩ УТБЧОЙЧБФШ ЪОБЮЕОЙС, ЛПФПТЩЕ ВЕТХФУС МЙВП ЙЪ ОБВПТБ ( ДМС IN ) МЙВП ЙЪ ДЙБРБЪПОБ ( ДМС BETWEEN ). фБЛЦЕ, РПДПВОП ТЕМСГЙПООЩН ПРЕТБФПТБН, BETWEEN НПЦЕФ ТБВПФБФШ У УЙНЧПМШОЩНЙ РПМСНЙ Ч ФЕТНЙОБИ ЬЛЧЙЧБМЕОФПЧ ASCII. ьФП ПЪОБЮБЕФ ЮФП ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ BETWEEN ЮФПВЩ ЧЩВЙТБФШ ТСД ЪОБЮЕОЙК ЙЪ ХРПТСДПЮЕООЩИ РП БМЖБЧЙФХ ЪОБЮЕОЙК. =============== SQL Execution Log ============ | | | SELECT * | | FROM Salespeople | | WHERE ( comm BETWEEN .10 AND .12 | | AND NOT comm IN ( .10 .12; | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1004 Motika London 0.11 | | | =============================================== тЙУХОПЛ 5.5: уДЕМБФШ BETWEEN - ОЕЧЛМАЮЕООЩН ьФПФ ЪБРТПУ ЧЩВЙТБЕФ ЧУЕИ ЪБЛБЪЮЙЛПЧ ЮШЙ ЙНЕОБ РПРБМЙ Ч ПРТЕДЕМЕООЩК БМЖБЧЙФОЩК ДЙБРБЪПО: SELECT * FROM Customers WHERE cname BETWEEN 'A' AND 'G'; чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.6. пВТБФЙФЕ чОЙНБОЙЕ ЮФП Grass Й Giovanni ПФУХФУФЧХАФ, ДБЦЕ РТЙ ЧЛМАЮЕООПН BETWEEN. ьФП РТПЙУИПДЙФ ЙЪ-ЪБ ФПЗП ЮФП BETWEEN УТБЧОЙЧБЕФ УФТПЛЙ ОЕТБЧОПК ДМЙОЩ. уФТПЛБ 'G' ВПМЕЕ ЛПТПФЛБ ЮЕН УФТПЛБ Giovanni, РПЬФПНХ BETWEEN ЧЩЧПДЙФ 'G' У РТПВЕМБНЙ. рТПВЕМЩ РТЕДЫЕУФЧХАФ УЙНЧПМБН Ч БМЖБЧЙФОПН РПТСДЛЕ ( Ч ВПМШЫЙОУФЧЕ ТЕБ- МЙЪБГЙК ), РПЬФПНХ Giovanni ОЕ ЧЩВЙТБЕФУС. фП ЦЕ УБНПЕ РТПЙУИПДЙФ У Grass. чБЦОП РПНОЙФШ ЬФП ЛПЗДБ ЧЩ ЙУРПМШЪХЕФЕ BETWEEN ДМС ЙЪЧМЕЮЕОЙС ЪОБЮЕОЙК ЙЪ БМЖБЧЙФОЩИ ДЙБРБЪПОПЧ. пВЩЮОП ЧЩ ХЛБЪЩЧБЕФЕ ДЙБРБЪПО У РПНПЭША УЙНЧПМБ ОБЮБМБ ДЙБРБЪПОБ Й УЙНЧПМБ ЛПОГБ( ЧНЕУФП ЛПФПТПЗП НПЦОП РТПУФП РПУФБЧЙФШ z ). =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE cname BETWEEN 'A' AND 'G'; | | ============================================= | | cnum cname city rating snum | | ------ -------- ------ ---- ------ | | 2006 Clemens London 100 1001 | | 2008 Cisneros San Jose 300 1007 | | | ============================================= тЙУХОПЛ 5. 6: йУРПМШЪПЧБОЙЕ BETWEEN Ч БМЖБЧЙФОЩИ РПТСДЛБИ претбфпт LIKE LIKE РТЙНЕОЙН ФПМШЛП Л РПМСН ФЙРБ CHAR ЙМЙ VARCHAR, У ЛПФПТЩНЙ ПО ЙУРПМШЪХЕФУС ЮФПВЩ ОБИПДЙФШ РПДУФТПЛЙ. ф.Е. ПО ЙЭЕФ РПМЕ УЙНЧПМБ ЮФПВЩ ЧЙДЕФШ, УПЧРБДБЕФ МЙ У ХУМПЧЙЕН ЮБУФШ ЕЗП УФТПЛЙ. ч ЛБЮЕУФЧЕ ХУМПЧЙС ПО ЙУРПМШЪХЕФ ЗТХРРПЧЩЕ УЙНЧПМЩ(wildkards) - УРЕГЙБМШОЩЕ УЙНЧПМЩ ЛПФПТЩЕ НПЗХФ УППФЧЕФУФЧПЧБФШ ЮЕНХ-ОЙВХДШ. йНЕАФУС ДЧБ ФЙРБ ЗТХРРПЧЩИ УЙНЧПМПЧ ЙУРПМШЪХЕНЩИ У LIKE: * УЙНЧПМ РПДЮЕТЛЙЧБОЙС ( _ ) ЪБНЕЭБЕФ МАВПК ПДЙОПЮОЩК УЙНЧПМ. оБРТЙНЕТ, 'b_t' ВХДЕФ УППФЧЕФУФЧПЧБФШ УМПЧБН 'bat' ЙМЙ 'bit', ОП ОЕ ВХДЕФ УППФЧЕФУФЧПЧБФШ 'brat'. * ЪОБЛ РТПГЕОФБ (%) ЪБНЕЭБЕФ РПУМЕДПЧБФЕМШОПУФШ МАВПЗП ЮЙУМБ УЙНЧПМПЧ (ЧЛМАЮБС УЙНЧПМЩ ОХМС). оБРТЙНЕТ '%p%t' ВХДЕФ УППФЧЕФУФЧПЧБФШ УМПЧБН 'put', 'posit', ЙМЙ 'opt', ОП ОЕ 'spite'. дБЧБКФЕ ОБКДЕН ЧУЕИ ЪБЛБЪЮЙЛПЧ ЮШЙ ЙНЕОБ ОБЮЙОБАФУС У G ( ЧЩЧПД РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.7 ): SELECT FROM Customers WHERE cname LIKE 'G%'; =============== SQL Execution Log ============ | | | SELECT * | | FROM Customers | | WHERE cname LIKE 'G'; | | ============================================= | | cnum cname city rating snum | | ------ -------- ------ ---- ------ | | 2002 Giovanni Rome 200 1003 | | 2004 Grass Berlin 300 1002 | | | ============================================= тЙУХОПЛ 5. 7: SELECT ЙУРПМШЪХЕФ LIKE У % LIKE НПЦЕФ ВЩФШ ХДПВЕО ЕУМЙ ЧЩ ЙЭЕФЕ ЙН ЙМЙ ДТХЗПЕ ЪОБЮЕОЙЕ, Й ЕУМЙ ЧЩ ОЕ РПНОЙФЕ ЛБЛ ПОЙ ФПЮОП РЙЫХФУС. рТЕДРПМПЦЙН ЮФП ЧЩ ОЕХЧЕТЕООЩ ЛБЛ ЪБРЙУБОП РП ВХЛЧБН ЙН ПДОПЗП ЙЪ ЧБЫЙИ РТПДБЧГПЧ Peal ЙМЙ Peel. чЩ НПЦЕФЕ РТПУФП ЙУРПМШЪПЧБФШ ФХ ЮБУФШ ЛПФПТХА ЧЩ ЪОБЕФЕ Й ЗТХРРПЧЩЕ УЙНЧПМЩ ЮФПВЩ ОБИПДЙФШ ЧУЕ ЧПЪНПЦОЩЕ РБТЩ ( ЧЩЧПД ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.8 ): SELECT * FROM Salespeople WHERE sname LIKE 'P _ _ l %'; зТХРРПЧЩЕ УЙНЧПМЩ РПДЮЕТЛЙЧБОЙС, ЛБЦДЩК ЙЪ ЛПФПТЩИ РТЕДУФБЧМСЕФ ПДЙО УЙНЧПМ, ДПВБЧСФ ФПМШЛП ДЧБ УЙНЧПМБ Л ХЦЕ УХЭЕУФЧХАЭЙН 'P' Й 'l' , РПЬФПНХ ЙН ОБРПДПВЙЕ Prettel ОЕ НПЦЕФ ВЩФШ РПЛБЪБОП. зТХРРПЧПК УЙНЧПМ ' % ' - Ч ЛПОГЕ УФТПЛЙ ОЕПВИПДЙН Ч ВПМШЫЙОУФЧЕ ТЕБМЙЪБГЙК ЕУМЙ ДМЙОБ РПМ sname ВПМШЫЕ ЮЕН ЮЙУМП УЙНЧПМПЧ Ч ЙНЕОЙ Peel ( РПФПНХ ЮФП ОЕЛПФПТЩЕ ДТХЗЙЕ ЪОБЮЕОЙС sname - ДМЙООЕЕ ЮЕН ЮЕФЩТЕ УЙНЧПМБ ). ч ФБЛПН УМХЮБЕ, ЪОБЮЕОЙЕ РПМ sname , ЖБЛФЙЮЕУЛЙ УПИТБОСЕНПЕ ЛБЛ ЙН Peel, УПРТПЧПЦДБЕФУС ТСДПН РТПВЕМПЧ. уМЕДПЧБФЕМШОП, УЙНЧПМ 'l' ОЕ ВХДЕФ ТБУУНБФТЙЧБФШУС ЛПОГПН УФТПЛЙ. зТХРРПЧПК УЙНЧПМ ' % ' - РТПУФП УППФЧЕФУФЧХЕФ ЬФЙН РТПВЕМБН. ьФП ОЕПВСЪБФЕМШОП, ЕУМЙ РПМ sname ЙНЕЕФ ФЙР - VARCHAR. =============== SQL Execution Log ============ | | | SELECT * | | FROM Salespeople | | WHERE sname LIKE ' P 1% '; | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1001 Peel London 0.12 | | | =============================================== тЙУХОПЛ 5.8: SELECT ЙУРПМШЪХЕФ LIKE У РПДЮЕТЛЙЧБОЙЕН (_) б ЮФП ЦЕ чЩ ВХДЕФЕ ДЕМБФШ ЕУМЙ ЧБН ОХЦОП ЙУЛБФШ ЪОБЛ РТПГЕОФБ ЙМЙ ЪОБЛ РПДЮЕТЛЙЧБОЙС Ч УФТПЛЕ? ч LIKE РТЕДЙЛБФЕ, ЧЩ НПЦЕФЕ ПРТЕДЕМЙФШ МАВПК ПДЙОПЮОЩК УЙНЧПМ ЛБЛ УЙНЧПМ ESC. уЙНЧПМ ESC ЙУРПМШЪХЕФУС УТБЪХ РЕТЕД РТПГЕОФПН ЙМЙ РПДЮЕТЛЙЧБОЙЕН Ч РТЕДЙЛБФЕ, Й ПЪОБЮБЕФ ЮФП РТПГЕОФ ЙМЙ РПДЮЕТЛЙЧБОЙЕ ВХДЕФ ЙОФЕТРТЕФЙТПЧБФШУС ЛБЛ УЙНЧПМ Б ОЕ ЛБЛ ЗТХРРПЧПК УЙНЧПМ. оБРТЙНЕТ, НЩ НПЗМЙ ВЩ ОБКФЙ ОБЫ sname УФПМВЕГ ЗДЕ РТЙУХФУФЧХЕФ РПДЮЕТЛЙЧБОЙЕ, УМЕДХАЭЙН ПВТБЪПН: SELECT * FROM Salespeople WHERE sname LIKE '%/_%'ESCAPE'/'; у ЬФЙНЙ ДБООЩНЙ ОЕ ВХДЕФ ОЙЛБЛПЗП ЧЩЧПДБ, РПФПНХ ЮФП НЩ ОЕ ЧЛМАЮЙМЙ ОЙЛБЛПЗП РПДЮЕТЛЙЧБОЙС Ч ЙН ОБЫЕЗП РТПДБЧГБ. рТЕДМПЦЕОЙЕ ESCAPE ПРТЕДЕМСЕФ '/ ' ЛБЛ УЙНЧПМ ESC. уЙНЧПМ ESC ЙУРПМШЪХЕНЩК Ч LIKE УФТПЛЕ, УПРТПЧПЦДБЕФУС ЪОБЛПН РТПГЕОФБ, ЪОБЛПН РПДЮЕТЛЙЧБОЙС, ЙМЙ ЪОБЛПН ESCAPE, ЛПФПТЩК ВХДЕФ ЙУЛБФШУС Ч УФПМВГЕ, Б ОЕ ПВТБВБФЩЧБФШ- У ЛБЛ ЗТХРРПЧПК УЙНЧПМ. уЙНЧПМ ESC ДПМЦЕО ВЩФШ ПДЙОПЮОЩН УЙНЧПМПН Й РТЙНЕОСФШУС ФПМШЛП Л ПДЙОПЮОПНХ УЙНЧПМХ УТБЪХ РПУМЕ ОЕЗП. ч РТЙНЕТЕ ЧЩЫЕ, УЙНЧПМ РТПГЕОФБ ОБЮБМБ Й УЙНЧПМ РТПГЕОФБ ПЛПОЮБОЙС ПВТБВБФЩЧБАФУС ЛБЛ ЗТХРРПЧЩЕ УЙНЧПМЩ; ФПМШЛП РПДЮЕТЛЙЧБОЙЕ РТЕДПУФБЧМЕОП УБНП УЕВЕ. лБЛ ХРПНСОХФП ЧЩЫЕ, УЙНЧПМ ESC НПЦЕФ ФБЛЦЕ ЙУРПМШЪПЧБФШУС УБНПУФПСФЕМШОП. дТХЗЙНЙ УМПЧБНЙ, ЕУМЙ ЧЩ ВХДЕФЕ ЙУЛБФШ УФПМВЕГ У ЧБЫЙН УЙН- ЧПМПН ESC, ЧЩ РТПУФП ЧЧПДЙФЕ ЕЗП ДЧБЦДЩ. чП-РЕТЧЩИ ЬФП ВХДЕФ ПЪОБЮБФШ ЮФП УЙНЧПМ ESC "ВЕТЕФ УМЕДХАЭЙК УЙНЧПМ ВХЛЧБМШОП ЛБЛ УЙНЧПМ", Й ЧП-ЧФПТЩИ ЮФП УЙНЧПМ ESC УБНПУФПСФЕМЕО. йНЕЕФУС РТЕДЩДХЭЙК РТЙНЕТ ЛПФПТЩК РЕТЕУНПФТЕО ЮФПВЩ ЙУЛБФШ НЕУФПОБИПЦДЕОЙЕ УФТПЛЙ '_/' Ч sname УФПМВГЕ: SELECT * FROM Salespeople WHERE sname LIKE ' % /_ / / %'ESCAPE'/'; уОПЧБ ОЕ ВХДЕФ ОЙЛБЛПЗП ЧЩЧПДБ У ФБЛЙНЙ ДБООЩНЙ. уФТПЛБ УТБЧОЙЧБЕФУС У УПДЕТЦБОЙЕН МАВПК РПУМЕДПЧБФЕМШОПУФЙ УЙНЧПМПЧ (%), УПРТПЧПЦДБЕНЩИ УЙНЧПМПН РПДЮЕТЛЙЧБОЙС ( /_ ), УЙНЧПМПН ESC ( // ), Й МАВПК РПУМЕДПЧБФЕМШОПУФША УЙНЧПМПЧ Ч ЛПОГЕ УФТПЛЙ ( % ). тбвпфб у охмечщнй( NULL ) ъобюеойснй юБУФП, ВХДХФ ЙНЕФШУС ЪБРЙУЙ Ч ФБВМЙГЕ ЛПФПТЩЕ ОЕ ЙНЕАФ ОЙЛБЛЙИ ЪОБЮЕОЙК ДМС ЛБЦДПЗП РПМ, ОБРТЙНЕТ РПФПНХ ЮФП ЙОЖПТНБГЙС ОЕ ЪБЧЕТЫЕОБ, ЙМЙ РПФПНХ ЮФП ЬФП РПМЕ РТПУФП ОЕ ЪБРПМОСМПУШ. SQL ХЮЙФЩЧБЕФ ФБЛПК ЧБТЙБОФ, РПЪЧПМСС ЧБН ЧЧПДЙФШ ЪОБЮЕОЙЕ NULL(рхуфпк) Ч РПМЕ, ЧНЕУФП ЪОБЮЕОЙС. лПЗДБ ЪОБЮЕОЙЕ РПМ ТБЧОП NULL, ЬФП ПЪОБЮБЕФ, ЮФП РТПЗТБННБ ВБЪЩ ДБООЩИ УРЕГЙБМШОП РТПНБТЛЙТПЧБМБ ЬФП РПМЕ ЛБЛ ОЕ ЙНЕАЭЕЕ ОЙЛБЛПЗП ЪОБЮЕОЙС ДМС ЬФПК УФТПЛЙ (ЙМЙ ЪБРЙУЙ). ьФП ПФМЙЮБЕФУС ПФ РТПУФП ОБЪОБЮЕОЙС РПМА, ЪОБЮЕОЙС ОХМС ЙМЙ РТПВЕМБ, ЛПФПТЩЕ ВБЪБ ДБООЩИ ВХДЕФ ПВТБВБФЩЧБФШ ФБЛЦЕ ЛБЛ Й МАВПЕ ДТХЗПЕ ЪОБЮЕОЙЕ. фПЮОП ФБЛЦЕ, ЛБЛ NULL ОЕ СЧМСЕФУС ФЕИОЙЮЕУЛЙН ЪОБЮЕОЙЕН, ПОП ОЕ ЙНЕЕФ Й ФЙРБ ДБООЩИ. пОП НПЦЕФ РПНЕЭБФШУС Ч МАВПК ФЙР РПМ. фЕН ОЙ НЕОЕЕ, NULL Ч SQL ЮБУФП ХРПНЙОБЕФУС ЛБЛ ОХМШ. рТЕДРПМПЦЙН, ЮФП ЧЩ РПМХЮЙМЙ ОПЧПЗП ЪБЛБЪЮЙЛБ ЛПФПТЩК ЕЭЕ ОЕ ВЩМ ОБЪОБЮЕО РТПДБЧГХ. юЕН ЦДБФШ РТПДБЧГБ Л ЛПФПТПНХ ЕЗП ОХЦОП ОБЪОБЮЙФШ, ЧЩ НПЦЕФЕ ЧЧЕУФЙ ЪБЛБЪЮЙЛБ Ч ВБЪХ ДБООЩИ ФЕРЕТШ ЦЕ, ФБЛ ЮФП ПО ОЕ РПФЕТСЕФУС РТЙ РЕТЕУФБОПЧЛЕ. чЩ НПЦЕФЕ ЧЧЕУФЙ УФТПЛХ ДМС ЪБЛБЪЮЙЛБ УП ЪОБЮЕОЙЕН NULL Ч РПМЕ snum Й ЪБРПМОЙФШ ЬФП РПМЕ ЪОБЮЕОЙЕН РПЪЦЕ, ЛПЗДБ РТПДБЧЕГ ВХДЕФ ОБЪОБЮЕО. NULL претбфпт фБЛ ЛБЛ NULL ХЛБЪЩЧБЕФ ОБ ПФУХФУФЧЙЕ ЪОБЮЕОЙС, ЧЩ ОЕ НПЦЕФЕ ЪОБФШ ЛБЛПЧ ВХДЕФ ТЕЪХМШФБФ МАВПЗП УТБЧОЕОЙС У ЙУРПМШЪПЧБОЙЕН NULL. лПЗДБ NULL УТБЧОЙЧБЕФУС У МАВЩН ЪОБЮЕОЙЕН, ДБЦЕ У ДТХЗЙН ФБЛЙН ЦЕ NULL, ТЕЪХМШФБФ ВХДЕФ ОЙ ЧЕТОЩН ОЙ ОЕЧЕТОЩН, ПО - ОЕЙЪЧЕУФЕО. оЕЙЪЧЕУФОЩК вХМЕЧ, ЧППВЭЕ ЧЕДЕФ УЕВС ФБЛЦЕ ЛБЛ ОЕЧЕТОБ УФТПЛБ, ЛПФПТБС РТПЙЪЧЕДС ОЕЙЪЧЕУФОПЕ ЪОБЮЕОЙЕ Ч РТЕДЙЛБФЕ ОЕ ВХДЕФ ЧЩВТБОБ ЪБРТПУПН - ЙНЕКФЕ ЧЧЙДХ ЮФП Ч ФП ЧТЕН ЛБЛ NOT(ОЕЧЕТОПЕ) - ТБЧОСЕФУС ЧЕТОП, NOT (ОЕЙЪЧЕУФОПЕ) - ТБЧОСЕФУС ОЕЙЪЧЕУФОП. уМЕДПЧБФЕМШОП, ЧЩТБЦЕОЙЕ ФЙРБ 'city = NULL' ЙМЙ 'city IN (NULL)' ВХДЕФ ОЕЙЪЧЕУФОП, ОЕЪБЧЙУЙНП ПФ ЪОБЮЕОЙС city. юБУФП ЧЩ ДПМЦОЩ ДЕМБФШ ТБЪМЙЮЙ НЕЦДХ ОЕЧЕТОП Й ОЕЙЪЧЕУФОП - НЕЦДХ УФТПЛБНЙ УПДЕТЦБЭЙНЙ ЪОБЮЕОЙС УФПМВГПЧ ЛПФПТЩЕ ОЕ УППФЧЕФУФЧХАФ ХУМПЧЙА РТЕДЙЛБФБ Й ЛПФПТЩЕ УПДЕТЦБФ NULL Ч УФПМВГБИ. рП ЬФПК РТЙЮЙОЕ, SQL РТЕДПУФБЧМСЕФ УРЕГЙБМШОЩК ПРЕТБФПТ IS, ЛПФПТЩК ЙУРПМШЪХЕФУС У ЛМАЮЕЧЩН УМПЧПН NULL, ДМС ТБЪНЕЭЕОЙС ЪОБЮЕОЙС NULL. оБКДЕН ЧУЕ ЪБРЙУЙ Ч ОБЫЕК ФБВМЙГЕ ъБЛБЪЮЙЛПЧ У NULL ЪОБЮЕОЙСНЙ Ч city УФПМВГЕ: SELECT * FROM Customers WHERE city IS NULL; ъДЕУШ ОЕ ВХДЕФ ОЙЛБЛПЗП ЧЩЧПДБ, РПФПНХ ЮФП НЩ ОЕ ЙНЕЕН ОЙЛБЛЙИ ЪОБЮЕОЙК NULL Ч ОБЫЙИ ФЙРПЧЩИ ФБВМЙГБИ. ъОБЮЕОЙС NULL - ПЮЕОШ ЧБЦОЩ, Й НЩ ЧЕТОЕНУС Л ОЙН РПЪЦЕ. йурпмшъпчбойе NOT уп урегйбмшощнй претбфптбнй уРЕГЙБМШОЩЕ ПРЕТБФПТЩ ЛПФПТЩЕ НЩ ЙЪХЮБМЙ Ч ЬФПК ЗМБЧЕ НПЗХФ ОЕНЕДМЕООП РТЕДЫЕУФЧПЧБФШ вХМЕЧХ NOT. пО РТПФЙЧПРПМПЦЕО ТЕМСГЙПООЩН ПРЕТБФПТБН, ЛПФПТЩЕ ДПМЦОЩ ЙНЕФШ ПРЕТБФПТ NOT - ЧЧПДЙНЩН ЧЩТБЦЕОЙЕН. оБРТЙНЕТ, ЕУМЙ НЩ ИПФЙН ХУФТБОЙФШ NULL ЙЪ ОБЫЕЗП ЧЩЧПДБ, НЩ ВХДЕН ЙУРПМШЪПЧБФШ NOT ЮФПВЩ ЙЪНЕОЙФШ ОБ РТПФЙЧПРПМПЦОПЕ ЪОБЮЕОЙЕ РТЕДЙЛБФБ: SELECT * FROM Customers WHERE city NOT NULL; рТЙ ПФУХФУФЧЙЙ ЪОБЮЕОЙК NULL( ЛБЛ Ч ОБЫЕН УМХЮБЕ ), ВХДЕФ ЧЩЧЕДЕОБ ЧУС ФБВМЙГБ ъБЛБЪЮЙЛПЧ. бОБМПЗЙЮОП НПЦОП ЧЧЕУФЙ УМЕДХАЭЕЕ SELECT * FROM Customers WHERE NOT city IS NULL; - ЮФП ФБЛЦЕ РТЙЕНМЕНП. нЩ НПЦЕН ФБЛЦЕ ЙУРПМШЪПЧБФШ NOT У IN: SELECT * FROM Salespeople WHERE city NOT IN ( 'London', 'San Jose' ); б ЬФП - ДТХЗПК УРПУПВ РПДПВОПЗП ЦЕ ЧЩТБЦЕОЙС SELECT * FROM Salespeople WHERE NOT city IN ( 'London', ' San Jose' ); чЩЧПД ДМС ЬФПЗП ЪБРТПУБ РПЛБЪЩЧБЕФУС Ч тЙУХОЛЕ 5.9. фБЛЙН ЦЕ УРПУПВПН чЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ NOT BETWEEN Й NOT LIKE. =============== SQL Execution Log ============ | | | SELECT * | | FROM Salespeople | | WHERE sity NOT IN ('London', 'San Jose'; | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1003 Rifkin Barcelona 0.15 | | 1007 Axelrod New York 0.10 | | | =============================================== тЙУХОПЛ 5. 9: йУРПМШЪПЧБОЙЕ NOT У IN теъане фЕРЕТШ ЧЩ НПЦЕФЕ УПЪДБЧБФШ РТЕДЙЛБФЩ Ч ФЕТНЙОБИ УЧСЪЕК УРЕГЙБМШОП ПРТЕДЕМЕООЩИ SQL. чЩ НПЦЕФЕ ЙУЛБФШ ЪОБЮЕОЙС Ч ПРТЕДЕМЕООПН ДЙБРБЪПОЕ (BETWEEN) ЙМЙ Ч ЮЙУМПЧПН ОБВПТЕ (IN), ЙМЙ ЧЩ НПЦЕФЕ ЙУЛБФШ УЙНЧПМШОЩЕ ЪОБЮЕОЙС ЛПФПТЩЕ УППФЧЕФУФЧХАФ ФЕЛУФХ ЧОХФТЙ РБТБНЕФТПЧ (LIKE). чЩ ФБЛЦЕ ЙЪХЮЙМЙ ОЕЛПФПТЩЕ ЧЕЭЙ ПФОПУЙФЕМШОП ФПЗП ЛБЛ SQL РПУФХРБЕФ РТЙ ПФУХФУФЧЙЙ ДБООЩИ - ЮФП ТЕБМШОПУФШ НЙТПЧПК ВБЪЩ ДБООЩИ - ЙУРПМШЪХС NULL ЧНЕУФП ЛПОЛТЕФОЩИ ЪОБЮЕОЙК. чЩ НПЦЕФЕ ЙЪЧМЕЛБФШ ЙМЙ ЙУЛМАЮБФШ ЪОБЮЕОЙС NULL ЙЪ ЧБЫЕЗП ЧЩЧПДБ ЙУРПМШЪХС ПРЕТБФПТ IS NULL. фЕРЕТШ, ЛПЗДБ ЧЩ ЙНЕЕФЕ Ч ЧБЫЕН ТБУРПТСЦЕОЙЙ ЧЕУШ ОБВПТ УФБОДБТФОЩИ НБФЕНБФЙЮЕУЛЙИ Й УРЕГЙБМШОЩИ ПРЕТБФПТПЧ, ЧЩ НПЦЕФЕ РЕТЕИПДЙФШ Л УРЕГЙБМШОЩН ЖХОЛГЙСН SQL ЛПФПТЩЕ ТБВПФБАФ ОБ ЧУЕИ ЗТХРРБИ ЪОБЮЕОЙК, Б ОЕ РТПУФП ОБ ПДЙОПЮОПН ЪОБЮЕОЙЙ, ЮФП ЧБЦОП. ьФП ХЦЕ ФЕНБ зМБЧЩ 6. тбвпфб у SQL 1. оБРЙЫЙФЕ ДЧБ ЪБРТПУБ ЛПФПТЩЕ НПЗМЙ ВЩ ЧЩЧЕУФЙ ЧУЕ РПТСДЛЙ ОБ 3 ЙМЙ 4 пЛФСВТС 1990 2. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩВЕТЕФ ЧУЕИ ЪБЛБЪЮЙЛПЧ ПВУМХЦЙЧБЕНЩИ РТПДБЧГБНЙ Peel ЙМЙ Motika. ( рПДУЛБЪЛБ: ЙЪ ОБЫЙИ ФЙРПЧЩИ ФБВМЙГ, РПМЕ snum УЧСЪЩЧБЕФ ЧФПТХА ФБВМЙГХ У РЕТЧПК ) 3. оБРЙЫЙФЕ ЪБРТПУ, ЛПФПТЩК НПЦЕФ ЧЩЧЕУФЙ ЧУЕИ ЪБЛБЪЮЙЛПЧ ЮШЙ ЙНЕОБ ОБЮЙОБАФУС У ВХЛЧЩ РПРБДБАЭЕК Ч ДЙБРБЪПО ПФ A ДП G. 4. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩВЕТЕФ ЧУЕИ РПМШЪПЧБФЕМЕК ЮШЙ ЙНЕОБ ОБЮЙОБАФУС У ВХЛЧЩ C. 5. оБРЙЫЙФЕ ЪБРТПУ ЛПФПТЩК ЧЩВЕТЕФ ЧУЕ РПТСДЛЙ ЙНЕАЭЙЕ ОХМЕЧЩЕ ЪОБЮЕОЙС ЙМЙ NULL Ч РПМЕ amt(УХННБ). (уН. рТЙМПЦЕОЙЕ A ДМС ПФЧЕФПЧ.)

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