SQLсервер в Linux -самостоятельное освоение пакета

         

Использование строковых констант



Листинг 3.4. Использование строковых констант

booktown=# UPDATE authors

booktown-# SET firstjiame = 'Louisa May'

booktown-l WHERE firstjiame = 'Luoisa May'

UPDATE 1

booktown-# SELECT * FROM authors;

id | lastjiame | firstjiame

1809 | Geisel | Theodor Seuss

1111 | Denham | Ariel 15990 | Bourgeois | Paulette

25041 | Bianco j Margery Williams

115 I Poe I Edgar Allen

16 j Alcott I Louisa May

(6 rows)



Команда UPDATE в листинге 3.4 использует строковые константы Louisa May и Luoisa May в сочетании с ключевыми словами SET и WHERE. Как видно из результатов запроса, команда обновляет содержимое таблицы, заданной идентификатором authors, и исправляет опечатку.

Тот факт, что строковые константы заключаются между апострофами, порождает очевидную семантическую проблему: если в самой последовательности символов встречается апостроф, граница строковой константы будет определена неверно. Чтобы экранировать апостроф в строке (то есть обеспечить его интерпретацию как литерала), следует поставить два апострофа подряд. Модуль лексического анализа воспринимает удвоенный апостроф в строковой константе как один апостроф-литерал. PostgreSQL также позволяет экранировать апострофы обратной косой чертой, в стиле языка С:

testdb=# SELECT 'PostgreSQL"s great!' AS example;

example

PostgreSQL's great! (1 row)

booktown=# SELECT 'PostgreSQLN's

С-style slashes are great!' AS example;

example

PostgreSQL's C-style slashes are great!

(1 row)

В PostgreSQL также поддерживаются служебные последовательности языка С, перечисленные в табл. 3.3.



Содержание раздела