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

Константы

Вещественные константы

Вещественные константы обладают определенным сходством с целочисленными константами, но используются для представления не только целых, но и дробных величин.

Существует несколько форматов представления вещественных констант, представленных в табл. 3.4. Запись ## означает одну или несколько цифр.

Таблица 3.4. Представление величин с плавающей точкой.

Представление Пример
##.## 6.4
##e[+-]## 8e-8
[##].##[e[+-]##] 0.04e8
##.[##][e[+-]##] 4e.5

В первом формате до десятичной точки и после нее должна стоять хотя бы одна цифра. Это необходимо для того, чтобы модуль лексического анализа PostgreSQL опознал значение как вещественную, а не целочисленную константу. В других форматах хотя бы одна цифра должна стоять до или после экспоненты, обозначенной буквой е. Наличие десятичной точки и/или экспоненты отличает вещественные константы от целочисленных.

В листинге 3.8 использование всех вещественных форматов продемонстрировано на примере простой команды SQL SELECT.

Листинг 3.8. Допустимые вещественные значения.

booktown=# SELECT.04 AS small_float.
booktown-# – 16.63 AS negative_float,
booktown-# 4e3 AS exponent!al_float,
booktown-# 6.1e2 AS negative_exponent:
small_float | negative_float |
exponential__float | negative_exponent
0.04-16.63 4000 | 0.061
(1 row)

Логические константы

Логические (булевы) константы гораздо проще всех остальных типов констант PostgreSQL, поскольку они принимают всего два допустимых значения: true и false. Встретив любое из этих значений, не заключенное в апострофы, PostgreSQL интерпретирует его как логическую константу. Пример показан в листинге 3.9.

Листинг 3.9. Различия между true и 'true'.

testdb=# SELECT true AS boolean_t .testdb-# 'true' AS string_t,
testdb-# false AS boolean_f,
testdb-# 'false' AS string_f;
boo1_t | string_t | bool_f | string_f
t | true | f | false
(1 row)

Как показано в листинге 3.9, PostgreSQL выводит значения логического типа в виде t или f, однако это вовсе не означает, что символы t и f могут использоваться в качестве логических констант. PostgreSQL не сможет правильно интерпретировать их, что приведет к ошибке.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.