GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Tipos de datos PostgreSQL

Introducción

PostgreSQL es un sistema de gestión de bases de datos relacionales de código abierto conocido por su robustez y extensibilidad. Esto también significa que PostgreSQL ofrece una variedad de tipos de datos para los usuarios.

En este tutorial, cubriremos los diferentes tipos de datos integrados disponibles en PostgreSQL.

Tipos de datos PostgreSQL

Al crear una tabla en PostgreSQL, puede especificar un tipo de datos para cada columna. PostgreSQL admite una amplia gama de tipos de datos integrados:

Personaje

PostgreSQL usa tipos de datos de caracteres para almacenar valores de texto. Hay tres tipos de datos de caracteres en PostgreSQL:

Tipos numéricos

Tipos de datos numéricos incluir:

  • Enteros de dos, cuatro y ocho bytes
  • Números de punto flotante de cuatro y ocho bytes
  • Decimales seleccionables:
Nombre Descripción
carácter(n), carácter(n) Cadenas de longitud fija, donde n es el número de caracteres. Espacio en blanco acolchado a la derecha para igualar a n .
variación de caracteres(n), varchar(n) Cadena de longitud variable con un límite de caracteres, donde n es el número de caracteres.
texto Longitud variable, cadena ilimitada.

Monetario

El tipo de datos monetarios almacena una cantidad numérica de dinero con precisión fraccionaria fija. Este tipo almacena hasta 8 bytes de datos con un rango de -92233720368547758.08 a +92233720368547758.07 y usa numeric , entero y bigint tipos de datos como valores.

Fecha/Hora

PostgreSQL Admite todos los tipos de datos de fecha y hora de SQL estándar , con una resolución de 1 microsegundo o 14 dígitos. La fecha es la única excepción, con resolución de un día, contado según el calendario gregoriano:

Nombre Tamaño de almacenamiento Descripción Alcance
inteligencia pequeña 2 bytes Entero de rango pequeño. -32768 a +32767
entero 4 bytes Entero de rango medio. -2147483648 a +2147483647
grande 8 bytes Entero de rango grande. -9223372036854775808 al 9223372036854775807
decimales variable Decimal de precisión especificado por el usuario. Hasta 131072 dígitos antes del punto decimal. Hasta 16383 dígitos después del punto decimal
numérico variable Decimal de precisión especificado por el usuario. hasta 131072 dígitos antes del punto decimal. Hasta 16383 dígitos después del punto decimal
real 4 bytes Decimal de precisión variable. Precisión de 6 dígitos decimales
doble precisión 8 bytes Decimal de precisión variable. Precisión de 15 dígitos decimales
pequeña serie 2 bytes Entero pequeño autoincrementable. 1 a 32767
serie 4 bytes Entero autoincrementable medio. 1 a 2147483647
gran serie 8 bytes Entero grande autoincrementable. 1 a 9223372036854775807

Binario

PostgreSQL puede guardar cadenas binarias de longitud variable como el tipo de datos bytea , tomando 1 o 4 bytes más el tamaño de la cadena binaria real.

Booleano

Un tipo de datos booleano se declara usando bool o boolean palabras clave Puede contener verdadero (1) , falso (0) o desconocido (nulo) valores.

Enumerado

Tipos de datos enumerados consisten en un conjunto estático y ordenado de valores, como números del 1 al 10 o meses en el año. A diferencia de otros tipos de datos, puede crear tipos enumerados usando el create type comando:

CREATE TYPE year AS ENUM ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

Cadena de bits

Tipo de cadena de bits almacena cadenas de 1 y 0, que se utilizan para almacenar o visualizar máscaras de bits:

Nombre Tamaño de almacenamiento Descripción Alcance
marca de tiempo 8 bytes Fecha y hora, sin zona horaria. 4713 aC a 294276 dC
timestampz 8 bytes Fecha y hora, con zona horaria. 4713 aC a 294276 dC
fecha 4 bytes Fecha. 4713 aC a 294276 dC
hora sin zona horaria 8 bytes Hora del día, sin zona horaria. 00:00:00 a 24:00:00
hora con zona horaria 12 bytes Hora del día, con zona horaria. 00:00:00 + 1459 a 24:00:00-1459
intervalo 12 bytes Intervalo de tiempo. -178000000 a 178000000 años

UUID

Un UUID (Universally Unique Identifiers) es un conjunto de 32 dígitos creado por un algoritmo. Consta de varios grupos de cuatro, ocho y doce dígitos, separados por guiones:

Dirección de red

PostgreSQL utiliza tipos de datos de direcciones de red para almacenar direcciones IPv4, IPv6 y MAC:

Nombre Descripción
bit(n) Almacena una cadena de bits con una longitud fija de n personajes.
variable(n) Almacena una cadena de bits de longitud variable, hasta n personajes.

El uso de tipos de datos de direcciones de red tiene varias ventajas sobre el uso de texto sin formato. Esto incluye ahorrar espacio de almacenamiento, funciones y comandos especializados y una verificación de errores más sencilla.

Búsqueda de texto

Tipo de datos de búsqueda de texto le permite buscar la mejor coincidencia en una colección de documentos en lenguaje natural:

Nombre Tamaño de almacenamiento Descripción
cidr 7 o 19 bytes Almacena redes IPv4 e IPv6.
inet 7 o 19 bytes Almacena hosts y redes IPv4 e IPv6.
macaddr 6 bytes Almacena direcciones MAC.

Geométrica

Tipos de datos geométricos representar objetos espaciales representados en dos dimensiones, como puntos, líneas y polígonos:

Nombre Descripción
tsvector Representa un documento optimizado para la búsqueda de texto, con una lista de palabras distintas normalizadas para fusionar diferentes variantes de la misma palabra (lexemas).
tsquery Almacena las palabras clave que deben buscarse y las combina mediante operadores booleanos (AND, OR y NOT).

XML

PostgreSQL le permite guardar datos XML como un tipo de datos XML usando el XMLPARSE función:

XMLPARSE (DOCUMENT [document name] WELLFORMED)

o:

XMLPARSE (CONTENT [XML content] WELLFORMED)

donde:

  • [document name] :un documento XML de raíz única.
  • [XML content] :Valor XML válido
  • WELLFORMED :esta opción garantiza que [nombre del documento] o [contenido XML] se resuelva en un documento XML bien formado. Úselo solo cuando no desee que la base de datos verifique si la entrada está bien formada.

JSON

PostgreSQL ofrece dos tipos de datos JSON :

  • json: Una extensión del tipo de datos de texto con validación JSON. Este tipo de datos guarda los datos exactamente como están (incluidos los espacios en blanco). Puede insertarlo rápidamente en la base de datos, pero es relativamente lento de recuperar debido al reprocesamiento.
  • jsonb: Representa datos JSON en formato binario. Es más lento de insertar en la base de datos, pero el soporte de indexación y la falta de reprocesamiento hacen que la recuperación sea significativamente más rápida.

Matriz

El tipo de datos de matriz le permite definir una columna de una tabla como una matriz multidimensional que puede usar cualquier tipo de datos base, enumerado o compuesto. Puede declarar, modificar y buscar matrices como lo haría con cualquier otra columna de la base de datos.

Compuesto

Tipos de datos compuestos le permiten utilizar una fila o registro de una tabla como elemento de datos. De forma similar a los tipos de datos de matriz, también puede declarar, buscar y modificar valores compuestos.

Alcance

Tipos de datos de rango use rangos discretos o continuos de otros tipos de datos. Los tipos de datos de rango incorporados incluyen:

Nombre Tamaño de almacenamiento Representación Descripción numérica
punto 16 bytes Punto en un plano. (x,y)
línea 32 bytes Línea infinita. ((x1,y1),(x2,y2))
lseg 32 bytes Segmento de línea finita. ((x1,y1),(x2,y2))
caja 32 bytes Caja rectangular. ((x1,y1),(x2,y2))
ruta 16+16n bytes Ruta abierta o cerrada. ((x1,y1),...(xn,yn))
polígono 40+16n bytes Polígono. ((x1,y1),...(xn,yn))
círculo 24 bytes Círculo. ((x,y),r) (punto central y radio)

También puede crear tipos de rango personalizados utilizando otros tipos de datos como base.

Identificador de objeto

PostgreSQL utiliza identificadores de objetos como sistemas de clave principal cuando realiza operaciones de entrada y salida especializadas:

Nombre Descripción
rango int4 Rango de enteros de tamaño medio.
rango int8 Rango de enteros grandes.
rango numérico Rango de decimales de precisión especificados por el usuario.
extraño Rango de horas y fechas sin zona horaria.
rango de tstz Rango de horas y fechas con una zona horaria.
intervalo de fechas Rango de fechas.

Pseudotipos

Los pseudotipos son una colección de entradas especiales para declarar el argumento de una función o el tipo de resultado:

Nombre Referencias Descripción
oide cualquiera Identificador de objeto numérico.
regproc pg_proc Nombre de la función.
procedimiento de registro pg_proc Función con tipos de argumentos.
registrar operador_pg Nombre del operador.
regoperador operador_pg Operador con tipos de argumentos.
clase de registro pg_clase Nombre de la relación.
tipo de registro tipo_pg Nombre del tipo de datos.
regconfig pg_ts_config Configuración de búsqueda de texto.
registro pg_ts_dict Diccionario de búsqueda de texto.

Ubuntu
  1. PostgreSQL Vs MySQL:una comparación detallada

  2. Tipos de datos de Cassandra:integrados, recopilados y definidos por el usuario

  3. ¿Cómo configurar postgresql por primera vez?

  4. Copie n bytes de datos x al archivo

  5. Cronometrar el tiempo de ejecución de múltiples comandos

¿Qué es la replicación de datos? {Tipos de replicación y esquemas explicados}

Instalación de Ubuntu 20.04 PostgreSQL

Instalación de Ubuntu 22.04 PostgreSQL

Hora del sistema

¿El indicador de hora no muestra la fecha/hora?

Cómo:Introducción a la programación:variables, tipos y manipulación de datos

    Nombre Descripción
    cualquiera La función acepta cualquier tipo de datos de entrada.
    cualquier elemento La función acepta cualquier tipo de datos.
    cualquier matriz La función acepta cualquier tipo de datos de matriz.
    cualquier matriz La función acepta cualquier tipo de datos que no sea de matriz.
    anyenum La función acepta cualquier tipo de datos enumerados.
    cualquier rango La función acepta cualquier tipo de datos de rango.
    cadena c La función acepta o devuelve una cadena C terminada en nulo.
    interno La función acepta o devuelve el tipo de datos interno del servidor.
    controlador_idioma La función devuelve el controlador de idioma.
    manejador_fdw Un controlador contenedor de datos externos devuelve fdw_handler.
    grabar Encuentra una función que devuelve un tipo de fila no especificado.
    gatillo Una función de activación devuelve activación.
    vacío La función no devuelve ningún valor.