O AnalyticDB for PostgreSQL suporta os tipos de dados listados abaixo. Para definir um tipo personalizado, execute a instrução CREATE TYPE.
Tipos de dados suportados
Os tipos estão agrupados por categoria. Cada entrada exibe alias, tamanho de armazenamento, intervalo de valores e uma breve descrição.
Tipos numéricos
Prefira integer para a maioria das colunas de números inteiros, pois oferece o melhor equilíbrio entre intervalo, armazenamento e desempenho. Utilize smallint apenas quando o espaço de armazenamento for uma restrição crítica. Adote bigint se os valores ultrapassarem o limite do tipo integer. Para cálculos decimais exatos (como operações financeiras), escolha decimal/numeric em vez de double precision ou real, tipos de ponto flutuante com precisão aproximada.
| Tipo de dado | Alias | Tamanho | Intervalo | Descrição |
|---|---|---|---|---|
| smallint | int2 | 2 bytes | -32768 a +32767 | Inteiro de intervalo pequeno. |
| integer | int, int4 | 4 bytes | -2.147.483.648 a +2.147.483.647 | Inteiro padrão. |
| bigint | int8 | 8 bytes | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 | Inteiro de intervalo grande. |
| decimal [ (p, s) ] | numeric [ (p, s) ] | Variável | Ilimitado | Precisão exata definida pelo usuário. |
| real | float4 | 4 bytes | 6 dígitos significativos | Ponto flutuante de precisão variável e aproximada. |
| double precision | float8 | 8 bytes | 15 dígitos significativos | Ponto flutuante de precisão variável e aproximada. |
| float | ||||
| money | 8 bytes | -92.233.720.368.547.758,08 a +92.233.720.368.547.758,07 | Valor monetário. |
Tipos seriais (autoincremento)
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
serial |
serial4 |
4 bytes |
1 a 2.147.483.647 |
Inteiro com autoincremento. |
|
bigserial |
serial8 |
8 bytes |
1 a 9.223.372.036.854.775.807 |
Inteiro grande com autoincremento. |
Tipos de caractere
Opte por text ou varchar na maioria das colunas de texto. Reserve char(n) para casos em que um sistema externo exige largura fixa, já que esse tipo preenche valores menores com espaços em branco.
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
character [ (n) ] |
char [ (n) ] |
1 byte + n |
Até n caracteres |
Cadeia de comprimento fixo, preenchida com espaços. |
|
character varying [ (n) ] |
varchar [ (n) ] |
1 byte + tamanho da cadeia |
Até n caracteres |
Cadeia de comprimento variável com limite superior. |
|
text |
1 byte + tamanho da cadeia |
Ilimitado |
Cadeia de comprimento variável sem limite. |
Tipos binários
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
bytea |
1 byte + cadeia binária |
1 ou 4 bytes mais a cadeia binária real |
Cadeia binária de comprimento variável. |
Tipos de data e hora
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
date |
4 bytes |
4713 a.C. a 294.277 d.C. |
Data calendária (ano, mês, dia). |
|
|
time [ (p) ] [ without time zone ] |
8 bytes |
00:00:00[.000000] a 24:00:00[.000000] |
Hora do dia, sem fuso horário. |
|
|
time [ (p) ] with time zone |
timetz |
12 bytes |
00:00:00+1359 a 24:00:00-1359 |
Hora do dia com fuso horário. |
|
timestamp [ (p) ] [ without time zone ] |
8 bytes |
4713 a.C. a 294.277 d.C. |
Data e hora, sem fuso horário. |
|
|
timestamp [ (p) ] with time zone |
timestamptz |
8 bytes |
4713 a.C. a 294.277 d.C. |
Data e hora com fuso horário. |
|
interval [ (p) ] |
12 bytes |
-178.000.000 a 178.000.000 anos |
Período de tempo. |
Tipo booleano
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
boolean |
bool |
1 byte |
true/false, t/f, yes/no, y/n, 1/0 |
Valor lógico booleano. |
Tipos de cadeia de bits
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
bit [ (n) ] |
n bits |
Constante de cadeia de bits |
Cadeia de bits de comprimento fixo. |
|
|
bit varying [ (n) ] |
varbit |
Variável |
Constante de cadeia de bits |
Cadeia de bits de comprimento variável. |
Tipos de endereço de rede
|
Tipo de dado |
Alias |
Tamanho |
Descrição |
|
cidr |
12 ou 24 bytes |
Redes IPv4 e IPv6. |
|
|
inet |
12 ou 24 bytes |
Hosts e redes IPv4 e IPv6. |
|
|
macaddr |
6 bytes |
Endereço MAC. |
Tipos de busca de texto e documento
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
json |
1 byte + tamanho do JSON |
Cadeia JSON |
Cadeia de comprimento variável ilimitado. |
|
|
xml |
1 byte + tamanho do XML |
Ilimitado |
Cadeia de comprimento variável ilimitado. |
Tipo UUID
|
Tipo de dado |
Alias |
Tamanho |
Descrição |
|
uuid |
32 bytes |
Identificador universalmente único. |
O tipouuidé nativo no AnalyticDB for PostgreSQL V6.0. Na versão V4.3, instale a extensãouuid-osspantes de utilizar esse tipo. Para mais detalhes, consulte Usar a extensão uuid-ossp .
Tipos geométricos
Os tipos geométricos (box,circle,lseg,path,point,polygon) não podem ser usados como colunas de chave de distribuição.
|
Tipo de dado |
Alias |
Tamanho |
Intervalo |
Descrição |
|
box |
32 bytes |
((x1,y1),(x2,y2)) |
Caixa retangular em um plano. |
|
|
circle |
24 bytes |
<(x,y),r> (centro e raio) |
Círculo em um plano. |
|
|
lseg |
32 bytes |
((x1,y1),(x2,y2)) |
Segmento de reta em um plano. |
|
|
path |
16+16n bytes |
[(x1,y1),...] |
Caminho geométrico em um plano. |
|
|
point |
16 bytes |
(x,y) |
Ponto geométrico em um plano. |
|
|
polygon |
40+16n bytes |
((x1,y1),...) |
Caminho geométrico fechado em um plano. |