Иллюстрированный самоучитель по PostgreSQL

Константы

Таблица 3.3. Служебные последовательности PostareSQL в стиле С.

Последовательность Описание
\\ Обратная косая черта (литерал)
\' Апостроф (литерал)
\b Забой
\f Подача листа
\n Новая строка
\r Возврат курсора
\t Табуляция
\ххх ASCII-символ с восьмеричным кодом ххх

Внимание
Вследствие того что обратная косая черта имеет особый смысл (см. табл. 3.3), при включении в строку этот символ обязательно экранируется другой косой чертой (например, в строке 'A single backslash is: \\' двойной символ обратной косой черты преобразуется в один)
.

Если две строковые константы PostgreSQL разделены промежутком, в который входит хотя бы один символ новой строки, они объединяются в одну строковую константу. Пример приведен в листинге 3.5.

Листинг 3.5. Разбиение строковых констант.

booktown=# SELECT 'book'
booktown-#
booktown-# 'end' AS example;
example
bookend (1 row)
booktown=# SELECT 'bookend' AS example;
example
bookend
(1 row)

Обе команды имеют эквивалентную семантику. Тем не менее фрагменты должны разделяться хотя бы одним разрывом строки, а при попытке разделить их только пробелами PostgreSQL выдает сообщение об ошибке:

booktown=# SELECT 'book' 'end' AS example;
ERROR: parser: parse error at or near…..

Дело в том, что без разрыва строки PostgreSQL считает, что вы ссылаетесь на две отдельные константы. Объединение двух строковых констант в одной строке выполняется оператором конкатенации 11, описанным в главе 5:

booktown=# SELECT 'book.' || 'end1 AS example; example
bookend (1 row)

Битовые последовательности

Битовые последовательности предназначены для представления двоичных величин в виде произвольной последовательности нулей и единиц. Как и строковые константы, битовые последовательности заключаются в апострофы, но начинаются с обязательного префикса В (в верхнем или нижнем регистре). По наличию этого символа PostgreSQL определяет, что строка является битовой последовательностью, а не обычной символьной строкой.

В соответствии с синтаксисом PostgreSQL открывающий апостроф должен следовать сразу же после префикса В, а битовая последовательность не может содержать других символов, кроме 0 и 1. Внутренние пробелы в битовых последовательностях запрещены, но допускается их разбиение по аналогии с обычными строковыми константами (см. выше пункт "Строковые константы).

Битовые строки обычно требуются только при работе с двоичными функциями и таблицами, содержащими двоичные данные. В листинге 3.6 продемонстрирована вставка битовой последовательности в таблицу. Сначала двоичное представление байта сохраняется в таблице my_bytes, а затем результат операции проверяется простым запросом.

Листинг 3.6. Использование битовых последовательностей.

testdiH* INSERT INTO my_bytes VALUES (B'OOOOOOOO'):
testdb=# SELECT my_byte FROM my_bytes:
my_byte
10000000
10000001
10000101
11111111
00000000
(5 rows)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.