PostgreSQL
上一页 第二章. SQL 语法 下一页

常量

在 Postgres 里使用三种隐含常量:strings(字符串),integers(整数)和floating point numbers(浮点数)。常量也可以被声明为显式的类型,这样可以获得更精确的表示和更有效的后端处理。我们在下面讨论隐含常量;显式常量以后讨论。

字符串常量

SQL 里的 Strings (字符串)是用单引号("'",例如,'这是 一个 字符串')包围的任意 ASCII 字符序列。SQL92 允许通过键入两个相邻的单引号的方法在字符串中嵌入单引号(如:'Dianne''s horse')。在 Postgres 里,单引号可以通过用反斜杠("\")转意的方法来嵌入(如:'Dianne\'s horse')。要在一个字符串常量里包含一个反斜杠,键入两个反斜杠。不可打印的字符也可以用前置反斜杠的方法嵌入字符串(如:'\tab')。

Integer (整数)常量

SQL 里的Integer (整数)常量是一个没有小数点的 ASCII 数字集合。合法的数值范围从-2147483648 到 +2147483647。这个范围会因操作系统和主机(硬件)的不同而异。

注意更大的整数可以用 SQL92 字符串符号或 Postgres 类型符号声明为 int8

int8 '4000000000'  -- string style
'4000000000'::int8 -- Postgres (historical) style

Floating Point (浮点数)常量

Floating point (浮点数)常量包含一个整数部分,一个小数点和下面格式表示的一个小数部分或者科学记数法:
{dig}.{dig} [e [+-] {dig}]
这里 dig 是一或者更多小数位。如果你使用这个选项,你必须在句点和 [+-] 后面包括至少一个 dig。一个没有尾数的指数会被认为有一个为 1 的尾数。在字符串里可能没有嵌入其他额外的字符。

Floating point (浮点数)常量类型是float8float4 可以用 SQL92 字符串表示法或者 Postgres 类型表示法显式地声明:

float4 '1.23'  -- string style
'1.23'::float4 -- Postgres (historical) style

Postgres 用户定义类型的常量

任意 类型的常量可以用下面任何一种表示法输入:
type 'string'
'string'::type
CAST 'string' AS type
字符串里的数值被传递给类型 type 的输入转换过程。结果就是指明类型的常量。如果对于该常量而言,其类型只有一种而没有语意含混的情况,那么显式的类型转换可以省略,这时类型转换是自动强制进行的。

数组常量

数组常量 是任意 Postgres 类型的数组,包括其他数组,字符串常量等。一个数组常量的通用格式如下:
{val1delimval2delim}
这里 delim 是在 pg_type 表里该类型的分隔符。(对于内建类型,这就是逗号字符(","))。一个数组常量的例子是
{{1,2,3},{4,5,6},{7,8,9}}
这个常量是一个二维的,3乘3的,由三个整数的子数组组成的。

独立的数组元素在可能的情况下可以并且也应该放在引号之间,这样与用空白间隔比起来可以避免语意含混的问题。


上一页 首页 下一页
名称 开头 域和列(字段)