PostgreSQL-数据类型3


一、数组类型
PostgreSQL 允许将表的列定义为可变长度的多维数组。可以创建任何内置或用户定义的基本类型、枚举类型、复合类型、范围类型或域的数组。

为了说明数组类型的使用,我们创建了这个表:

CREATE TABLE sal_emp (
    name            text,
    pay_by_quarter  integer[],
    schedule        text[][]
);

如图所示,通过将方括号 ([]) 附加到数组元素的数据类型名称来命名数组数据类型。上面的命令将创建一个名为 sal_emp 的表,其中有一列 text 类型(name),一个整数类型的一维数组(pay_by_quarter),它表示员工按季度的工资,以及一个 text 二维数组(schedule),它代表员工的每周计划。

CREATE TABLE 的语法允许指定数组的确切大小,例如:

CREATE TABLE tictactoe (
    squares   integer[3][3]
);

但是,当前实现忽略了任何提供的数组大小限制,即行为与未指定长度的数组相同。

当前的实现也不强制声明的维数。无论大小或维数如何,特定元素类型的数组都被认为是同一类型。因此,在 CREATE TABLE 中声明数组大小或维数只是文档;它不会影响运行时行为。

通过使用关键字 ARRAY 符合 SQL 标准的替代语法可用于一维数组。pay_by_quarter 可以定义为:

pay_by_quarter  integer ARRAY[4],

或者,如果没有指定数组大小:

    pay_by_quarter  integer ARRAY,

然而,和以前一样,PostgreSQL 在任何情况下都不会强制执行大小限制。

要将数组值写为文字常量,请将元素值括在花括号内并用逗号分隔。您可以在任何元素值周围加上双引号,如果它包含逗号或花括号,则必须这样做。因此,数组常量的一般格式如下:

'{ val1 delim val2 delim ... }'

其中 delim 是类型的分隔符,记录在其 pg_type 条目中。在 PostgreSQL 发行版中提供的标准数据类型中,除了使用分号 (

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/288177.html

(0)
上一篇 2022年9月7日
下一篇 2022年9月7日

相关推荐

发表回复

登录后才能评论