Константы
Вещественные константы
Вещественные константы обладают определенным сходством с целочисленными константами, но используются для представления не только целых, но и дробных величин.
Существует несколько форматов представления вещественных констант, представленных в табл. 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 не сможет правильно интерпретировать их, что приведет к ошибке.