pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
Postgres 中有三种隐式类型常量: 字符串、整数和浮点数。常量也可以用显式类型指定,这可以使后端更准确地表示并更高效地处理它们。 隐式常量将在下面介绍;显式常型随后讨论。
SQL 中的字符串是由单引号括起的任意 ASCII 字符序列 ("'",例如 'This is a string')。 SQL92 允许在字符串中嵌入单引号,方法是写两个相邻的单引号 (例如 'Dianne''s horse')。 在 Postgres 中,也可以用反斜线("\",例如 'Dianne\'s horse')对单引号转义。要在字符串常量中包含一个 反斜线,请写两个反斜线。不可打印字符也可以通过在前面加一个反斜线 (例如 '\) 嵌入到字符串中。tab'
SQL 中的整数常量是不带小数点的 ASCII 数字序列。 合法值的范围是从 -2147483648 到 +2147483647。这个范围会随操作系统和主机 机器而变化。
注意,更大的整数可以通过 SQL92 字符串记法或 Postgres 类型记法为 int8 指定:
int8 '4000000000' -- string style
'4000000000'::int8 -- Postgres (historical) style
浮点常量由一个整数部分、一个小数点和一个小数部分组成, 或者是下列格式的科学记法:
{dig}.{dig} [e [+-] {dig}]
其中 dig 是一个或多个数字。 如果使用那些选项,则必须在句点之后以及 [+-] 之后至少包含一个 dig。缺少尾数的指数会被插入尾数 1。 字符串中不能嵌入多余的字符。
浮点常量的类型是 float8。float4 可以用 SQL92 字符串记法或 Postgres 类型记法显式指定:
float4 '1.23' -- string style
'1.23'::float4 -- Postgres (historical) style
一个任意类型的常量可以用下列记法之一输入:
type'string' 'string'::typeCAST 'string' AStype
字符串之内的值被传递给名为 type 的类型的输入 转换例程。结果就是所指示类型的一个常量。如果常量必须是哪个类型没有歧义, 显式类型转换可以省略,此时它会被自动强制转换。
数组常量是任何 Postgres 类型的数组,包括其他数组、 字符串常量等。数组常量的一般格式如下:
{val1delimval2delim}
其中 delim 是存储在 pg_type 类中该类型的分隔符。(对于内建类型,这是逗号字符(",")。) 一个数组常量的示例是
{{1,2,3},{4,5,6},{7,8,9}}
这个常量是一个二维的 3×3 数组,由三个整数子数组组成。
单个数组元素只要有可能就应当放在引号之间,以避免与前导空白相关的歧义问题。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。