postgresql
Tipos de datos
Buscar..
Introducción
PostgreSQL tiene un amplio conjunto de tipos de datos nativos disponibles para los usuarios. Los usuarios pueden agregar nuevos tipos a PostgreSQL usando el comando CREAR TIPO.
Tipos numericos
Nombre | Tamaño de almacenamiento | Descripción | Distancia |
---|---|---|---|
smallint | 2 bytes | entero de rango pequeño | -32768 a +32767 |
integer | 4 bytes | elección ypical para entero | -2147483648 a +2147483647 |
bigint | 8 bytes | entero de gran rango | -9223372036854775808 a +9223372036854775807 |
decimal | variable | precisión especificada por el usuario, exacta | hasta 131072 dígitos antes del punto decimal; hasta 16383 dígitos después del punto decimal |
numeric | variable | precisión especificada por el usuario, exacta | hasta 131072 dígitos antes del punto decimal; hasta 16383 dígitos después del punto decimal |
real | 4 bytes | precisión variable, inexacta | Precisión de 6 dígitos decimales |
double precision | 8 bytes | precisión variable, inexacta | Precisión de 15 dígitos decimales |
smallserial | 2 bytes | pequeño entero autoincremento | 1 a 32767 |
serial | 4 bytes | autoincremento entero | 1 a 2147483647 |
bigserial | 8 bytes | entero autoincremento grande | 1 a 9223372036854775807 |
int4range | Rango de enteros | ||
int8range | Gama de bigint | ||
numrange | Rango de numérico |
Tipos de fecha / hora
Nombre | Tamaño de almacenamiento | Descripción | Bajo valor | Alto valor | Resolución |
---|---|---|---|---|---|
timestamp (sin zona horaria) | 8 bytes | fecha y hora (sin zona horaria) | 4713 aC | 294276 dC | 1 microsegundo / 14 dígitos |
timestamp (con zona horaria) | 8 bytes | fecha y hora, con zona horaria | 4713 aC | 294276 dC | 1 microsegundo / 14 dígitos |
date | 4 bytes | fecha (sin hora del día) | 4713 aC | 5874897 dC | 1 día |
time (sin zona horaria) | 8 bytes | hora del día (sin fecha) | 00:00:00 | 24:00:00 | 1 microsegundo / 14 dígitos |
time (con zona horaria) | 12 bytes | solo horas del día, con zona horaria | 00: 00: 00 + 1459 | 24: 00: 00-1459 | 1 microsegundo / 14 dígitos |
interval | 16 bytes | intervalo de tiempo | -178000000 años | 178000000 años | 1 microsegundo / 14 dígitos |
tsrange | rango de marca de tiempo sin zona horaria | ||||
tstzrange | rango de marca de tiempo con zona horaria | ||||
daterange | rango de fecha |
Tipos geometricos
Nombre | Tamaño de almacenamiento | Descripción | Representación |
---|---|---|---|
point | 16 bytes | Punto en un avion | (x, y) |
line | 32 bytes | Linea infinita | {A B C} |
lseg | 32 bytes | Segmento de línea finita | ((x1, y1), (x2, y2)) |
box | 32 bytes | Caja rectangular | ((x1, y1), (x2, y2)) |
path | 16 + 16n bytes | Ruta cerrada (similar a polígono) | ((x1, y1), ...) |
path | 16 + 16n bytes | Camino abierto | [(x1, y1), ...] |
polygon | 40 + 16n bytes | Polígono (similar a la ruta cerrada) | ((x1, y1), ...) |
circle | 24 bytes | Circulo | <(x, y), r> (punto central y radio) |
Tipos de direcciones de red
Nombre | Tamaño de almacenamiento | Descripción |
---|---|---|
cidr | 7 o 19 bytes | Redes IPv4 e IPv6 |
inet | 7 o 19 bytes | IPv4 e IPv6 hosts y redes |
macaddr | 6 bytes | Direcciones MAC |
Tipos de personajes
Nombre | Descripción |
---|---|
character varying(n) , varchar(n) | longitud variable con límite |
character(n) , char(n) | longitud fija, acolchado en blanco |
text | longitud ilimitada variable |
Arrays
En PostgreSQL puede crear matrices de cualquier tipo integrado, definido por el usuario o enumeración. De forma predeterminada, no hay límite para una matriz, pero puede especificarla.
Declarando una matriz
SELECT integer[];
SELECT integer[3];
SELECT integer[][];
SELECT integer[3][3];
SELECT integer ARRAY;
SELECT integer ARRAY[3];
Creando un Array
SELECT '{0,1,2}';
SELECT '{{0,1},{1,2}}';
SELECT ARRAY[0,1,2];
SELECT ARRAY[ARRAY[0,1],ARRAY[1,2]];
Accediendo a un Array
Por defecto, PostgreSQL usa una convención de numeración basada en uno para los arreglos, es decir, un arreglo de n elementos comienza con el array[1]
y termina con el array[n]
.
--accesing a spefific element
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1] FROM arr;
int_arr
---------
0
(1 row)
--sclicing an array
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1:2] FROM arr;
int_arr
---------
{0,1}
(1 row)
Obtener información sobre una matriz
--array dimensions (as text)
with arr as (select ARRAY[0,1,2] int_arr) select array_dims(int_arr) from arr;
array_dims
------------
[1:3]
(1 row)
--length of an array dimension
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT array_length(int_arr,1) FROM arr;
array_length
--------------
3
(1 row)
--total number of elements across all dimensions
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT cardinality(int_arr) FROM arr;
cardinality
-------------
3
(1 row)
Funciones de matriz
será añadido
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow