Дипломного проекта  разработка серверной части веб 



жүктеу 0,72 Mb.
Pdf просмотр
бет12/22
Дата22.05.2018
өлшемі0,72 Mb.
#16329
түріДиплом
1   ...   8   9   10   11   12   13   14   15   ...   22

43 

 

5.1.2.1 Қатарлық константалар 

 

SQL  қатарлық  константалар 



    бұл  қарапайым  апострофқа  алынған  (') 

таңбалар  реті,  мысалы:  'Бұл  қатар'.  Қатарға  апостроф  қосу  үшін  жанына  екі 

апостроф  қосу  керек:  'Жанна  д''Арк'.  Назар  аударатын  нәрсе:  екі  бағымнан 

айырмашылығы бар ("). 

 

Бос  орын  таңбаларымен  және  минимум  бір  қатар  ауысуымен 



ажыратылған екі қатарлық константа бір константаға біріктіреледі және қатар 

бір константада жазылған секілді өңделеді. Мысалы: 

SELECT 'foo' 

'bar'; 


эквивалентті: 

SELECT 'foobar'; 

алайда келесі жазба: 

SELECT 'foo' 'bar'; 

 синтаксис  жағынан  қарағанда  қате.  Бұл  оғаш  іс

әрекет  SQL  стандартында 



анықталған, PostgreSQL тек оны орындайды.  

 

 5.1.2.2 С стильдегі арнайы тізбекті қатарлы константалар  

 

PostgreSQL SQL стандартының кеңейілуі болып табылатын «арнайы  



тізбекті  »  қабылдайды.  Арнайы  тізбегі  бар  қатар  тікелей  апостроф  алдында 

тұратын  Е  (үлкен  немесе  кіші)  әрпінен  басталады,  мысалы:  E'foo'.  Арнайы 

тізбегі бар константа бірнеше қатарға бөлінгенде Е әрпін ең алғашқы ашушы 

апостроф  алдында  қою  керек.  осындай  қатарлар  ішінде  кері  қиғаш  сызық  (\) 

С



типті  арнайы  тізбекті  бастайды;  оларда  кері  қиғаш  сызықтың  келесі 



таңба(лар)мен үйлесімі белгілі бір байт мәнін береді.  

 

5.1



 Кесте 


 Арнайы тізбектер 

Арнайы тізбек 

Интерпретациясы 

\b 

таңба 


\f 

форма беру 

\n 

жаңа қатар 



\r 

каретка қайтарылымы 

\t 

табуляция 



\o, \oo, \ooo (o = 0 - 7) 

байттың сегіздік мағынасы 

\xh, \xhh (h = 0 — 9, A — F) 

байттың оналтылық мағынасы 

\uxxxx, \Uxxxxxxxx (x = 0 — 9, A — F)  Unicode  таңбасының  16  немесе  32 

биттік оналтылық код 

Кері  қиғаш  сызық  кейін  болатын  кез  келген  басқа  таңба  тікелей 

қабылданады.  Осылайша,  қатарға  кері  қиғаш  сызықты  қосу  үшін  екі  қиғаш 

сызық  (\\)  жазу  керек.  Сонымен  қатар  ''  әдеттегі  тәсілмен  бірге    қатарға  \' 

жазып  апостроф қосуға болады. Пайдаланушы өзі жасаған осындай байттық 




44 

 

жүйеліктер,  әсіресе  сегіздік  және  оналтылық  жазбалар,  серверлік  кодтауда 



рұқсат  етілген  таңбалар  құрылғанын  қарау  керек.  Сервер  UTF-8  кодтауымен 

жұмыс істегенде осындай байт жазбасының орнына  Unicode арнайы тізбегін 

немесе  Unicode    балама  синтаксисін  қолданған  дұрыс.  Әйтпесе  ыңғайы  жоқ 

тәсілмен  UTF-8 таңбаларын қолмен кодтауға және байт бойынша жазуға тура 

келеді. Unicode бірге арнайы тізбектер толық қолданылады тек сервер кодтауы 

UTF-8 


болған 

жағдайда. 

Басқа 

кодтаулар 



қолданған 

жағдайда 

ASCII



таңбалармен  (\u007F  дейін  кодтармен)  көрсеткіш  рұқсат  етіледі.  Егер 



конфигурацияның  standard_conforming_strings  параметрі  off  мәнді  болса, 

PostgreSQL  кері  қиғаш  сызықты  қарапайым  қатарларда  да,  және  арнайы 

тізбекті  қатарларда  да  арнайы  таңба  ретінде  таниды.  Алайда  PostgreSQL  9.1 

нұсқасында  әдеткі  бойынша  on  мәні  қабылданған,  және  осы  жағдайда  кері 

қиғаш  сызық  арнайы  қатарларда  танылады.  Бұл  әрекет  стандартпен 

қиыстырылады,  бірақ  кері  қиғаш  сызық  барлық  кезде  танылған  алдыңғы 

режимге сенілген құрылым жұмысын бұзуы мүмкін. Уақытша шешім ретінде 

пайдаланушы  осы  параметрді  off  мәніне  өзгертуге  болады,  бірақ  осы 

практикадан  кеткен  дұрыс.  Егер  пайдаланушыға  кері  қиғаш  сызық  арнайы 

таңба  ретінде  керек  болса,  Е  бірге  қатарлық  константа  беру  керек. 

standard_conforming_strings  қосымша  ретінде  кері  қиғаш  сызықтың  қатарлық 

константалардағы  әрекетін  escape_string_warning  және  backslash_quote 

параметрлері басқарады. Қатарлық константа 0 кодты таңба қоса алмайды.  

 

5.1.2.3 Unicode арнайы тізбекті қатарлық константалар 

 

PostgreSQL қатарларға Unicode таңбаларын олардың коды бойынша қоса 



алатын  арнайы  тізбектердің  тағы  бір  нұсқасын  қолдайды.  Unicode  арнайы 

тізбегі  бар  қатарлық  константа  U&  (үлкен  немесе  кіші  және  амперсанд) 

басталады,  одан  кейін  бос  орынсыз  апостроф  жүреді,  мысалы  U&'foo'.  Назар 

аударатын нәрсе: & операторымен белгісізідік пайда болады, оның алдын алу 

үшін  операторды  бос  орынмен  қоршау  керек.  Кейіннен  апострофта  Unicode 

таңбаларын  екі  тәсілмен  жазуға  болады:  кері  қиғаш  сызық,  кейіннен  төрт 

оналтылық  саннан  код,  немесе  кері  қиғаш  сызық,  қосу  таңбасы,  одан  кейін 

төрт  оналтылық  саннан  код.  Мысалы,  'data'  қатарын  келесі  жолмен  жазуға 

болады: 

U&'d\0061t\+000061'  

Келесі мысалда оңай сөз «слон»: 

U&'\0441\043B\043E\043D' 

Егер  кері  қиғаш  сызықты  қолдану  керек  болмаса,  оның  орнына  басқа 

арнайы  таңба  қолдануға  болады;  оны  қатардан  кейін  UESCAPE  қосып 

көрсетуге болады: 

U&'d!0061t!+000061' UESCAPE '!' 

Арнайы таңба ретінде кез келген таңбаны алуға болады. Өзгешелік тек 

оналтылық сандар, қосу таңбасы, апостроф, бағым және бос орын таңбалары 

білдіреді.  Жоғарыда  айтылған  конфигурацияның  standard_conforming_strings 



45 

 

параметрінің  мәні  on  тең  болған  жағдайда  ғана  жұмыс  істейді.  Бұл  әрекет 



SQL

операторын  тексеретін  клиенттік  қосымша  кері  жағдайда  адастыруы 



және  оны  осалдық  ретінде  пайдалануы  мүмкін,  мысалы,  SQL

инъекциясы 



үшін.  Егер  осы  параметр  off    мағыналы  болса,  осы  арнайы  тізбектер  қателік 

тудырады. Арнайы таңбаны қатарға тікелей қосу үшін оны екі рет жазу керек.  

 

5.1.2.4 Долларға алынған қатарлық константалар 

 

Қатарлық  консталар  үшін  стандартты  синтаксис  әдетте  жеткілікті 



ыңғайлы  болғанымен,  қатарда  көп  апостроф  немесе  кері  қиғаш  сызықтар 

болса ол қиын оқылуы мүмкін, өйткені әрбір таңбаны көшіру керек . Осындай 

жағдайда  да  сұраныстар  оқылуы  үшін  PostgreSQL  қатарлар  константаларды 

жазудың тағы бір жолын ұсынады 

 «қатарды долларларға алу». Долларларға  



қатарлық  константа  доллар  таңбасынан  ($)  басталады,    бірнеше  символдан 

тұратын міндетті емес тег және доллар таңбасынан, одан к ейін 

жолды 

құрайтын  қарапайым  таңбалардың  ретінен  және  де  доллар  таңбасымен,    



доллар таңбасын жабатын тегпен аяқталады. Мысалы, «Жанна д'Арк» жолын 

доллар таңбалы әдісімен екі түрлі жолмен жазуға болады: 

$$Жанна д'Арк$$ 

$SomeTag$Жанна д'Арк$SomeTag$ 

Назар  аударатын  жағдай:  осындай  жол  үшін  апострофтарды  арнайы 

жолмен  жазудың  қажеті  жоқ.  Шынында,  долларға  алынған  жолда  барлық 

таңбаларды таза түрде жазу керек: жолдың құрамы дәлме

дәл жазылады. Кері 



қиғаш  сызық  та,  доллар  таңбасы  да  арнайы  таңбаларға  жатпайды,  тек  егер 

ашатын тегке сәйкес жүйелік құрамаса. 

Долларға  алынған  қатарлық  константаларды  әрбір  салынған  деңгейге 

түрлі  тег  таңдап  бір

біріне  салуға  болады.  Көбінесе  бұл  белгілі  бір 



фукцияларды жазуда қолданылады.  

Мысалы: 


$function$ 

BEGIN 


RETURN ($1 ~ $q$[\t\r\n\v\\]$q$); 

END; 


$function$ 

Бұл  жерде  $q$[\t\r\n\v\\]$q$  жүйелігі  доллар  таңбасымен  [\t\r\n\v\\] 

мәтіндік  қатарды  көрсетеді;  мәтіндік  қатар  PostgreSQL  функция  орындаған 

мезетте  өңделеді.  Алайда,  берілген  жүйелік  долларға  алынған  ішкі  тегке 

($function$)  сәйкес  емес  болғандықтан,    ішкі  қатар  көзқарасынан  бұл 

константа ішіндегі жай таңбалар. Долларға алынған қатар тегі

ол бар болған 



жағдайда

 бағымға алынбаған идентификаторлар үшін анықталған ережелерге 



сай  келуі  міндетті.  Сонымен  қатар  доллар  таңбаның  болмауы  шарт.  Тегтер 

регистрге  тәуелді,  сол  себепті  $tag$String  content$tag$ 

  дұрыс  қатар,  ал 



$TAG$String content$tag$ 

 дұрыс емес.  




жүктеу 0,72 Mb.

Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   22




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау