Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db_lectures / 05. Создание таблиц. Имена. Ограничения данных.docx
Скачиваний:
41
Добавлен:
21.05.2015
Размер:
30 Кб
Скачать

Константы, экранированные знаками доллара

Несмотря на то, что стандартный синтаксис для задания строковых констант обычно удобен, он может быть труден для понимания, если строка содержит множество одинарных кавычек или символов обратной косой черты, так как каждый из этих символов должен быть сдвоен. Чтобы в таких ситуациях сделать запросы более читабельными, PostgreSQL предоставляет другой способ написания строковых констант — "между знаками доллара". Строковые константы в знаках доллара состоят из знака доллара ($), необязательного "тэга" из нуля или более символов, другого знака доллара, произвольной последовательности символов, которые представляют собой содержательную часть строки, знака доллара, такого же тэга, который был вначале и завешающего знака доллара. Например, далее показывается два разных способа задания строки "Dianne's horse" с помощью заключения в знаки долларов:

$$Dianne's horse$$

$SomeTag$Dianne's horse$SomeTag$

Обратите внимание, что внутри заключённой в знаки доллара строки, одинарные кавычки могут быть использованы без экранирования.

Битово-строковые константы

Битово-строковые константы выглядят как обычные строковые константы с символом B (в нижнем или верхнем регистре) который идёт сразу перед открываюшей кавычкой (без пробелов), например, B'1001'. В битово-строковой константе допускаются только символы 0 и 1.

Кроме-того, битово-строковые константы могут быть заданы в шестнадцатеричной нотации, используя лидирующий символ X (в верхнем или нижнем регистре), например, X'1FF'. Такая нотация эквивалентна битово-строковой константе с четырмя двоичными разрядами для каждого шестнадцатеричного разряда.

Числовые константы

Числовые константы принимаются в трёх общих формах:

цифры

цифры.[цифры][e[+-]цифры]

[цифры].цифры[e[+-]цифры]

цифрыe[+-]цифры

где цифры - это одна или более десятичных цифр (от 0 до 9). По крайней мере одна цифра должна следовать до или после десятичной точки, если она используется. По крайней мере одна цифра должна следовать за символом экспоненты (e), если этот символ есть. В константе не должно быть пробелов или других символов. Заметим, что все знаки плюс или минус вначале константы не являются фактической частью константы; эти знаки являются оператором, который применяется к константе.

Вот несколько примеров правильных числовых констант:

42 3.5 4. .001 5e2 1.925e-3

Числовая константа, которая не имеет ни десятичной точки ни символа экспоненты, считается имеющей тип integer (целое), если её значение умещается в тип integer (32 бита); в противном случае считается, что константа имеет тип bigint (большое целое), если её значение умещается в тип bigint (64 бита); в противном случае считается, что константа имеет тип numeric. Константы, которые содержат десятичную точку и/или символ экпоненты всегда считаются имеющими тип numeric.

Когда это необходимо, можно заставить числовое значение принудительно интерпретироваться как специальный тип данных, через его указание. Например, вы можете принудительно заставить числовое значение интерпретироваться как тип real (float4), написав

REAL '1.23' -- string style