GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Types de données PostgreSQL

Présentation

PostgreSQL est un système de gestion de base de données relationnelle open source connu pour sa robustesse et son extensibilité. Cela signifie également que PostgreSQL offre une variété de types de données pour les utilisateurs.

Dans ce didacticiel, nous couvrirons les différents types de données intégrés disponibles dans PostgreSQL.

Types de données PostgreSQL

Lors de la création d'une table dans PostgreSQL, vous pouvez spécifier un type de données pour chaque colonne. PostgreSQL prend en charge une large gamme de types de données intégrés :

Personnage

PostgreSQL utilise des types de données de caractères pour stocker des valeurs de texte. Il existe trois types de données de caractères dans PostgreSQL :

Nom Description
caractère(n), caractère(n) Chaînes de longueur fixe, où n est le nombre de caractères. Espace vide rempli à droite égal à n .
caractère variable(n), varchar(n) Chaîne de longueur variable avec une limite de caractères, où n est le nombre de caractères.
texte Chaîne de longueur variable et illimitée.

Types numériques

Types de données numériques inclure :

  • Entiers de deux, quatre et huit octets
  • Nombres à virgule flottante de quatre et huit octets
  • Décimales sélectionnables :
Nom Taille de stockage Description Plage
smallint 2 octets Entier de petite plage. -32768 à +32767
entier 4 octets Entier moyen. -2147483648 à +2147483647
bigint 8 octets Entier large. -9223372036854775808 à 9223372036854775807
décimal variable Décimale de précision spécifiée par l'utilisateur. Jusqu'à 131072 chiffres avant la virgule décimale. Jusqu'à 16383 chiffres après la virgule
numérique variable Décimale de précision spécifiée par l'utilisateur. jusqu'à 131072 chiffres avant la virgule décimale. Jusqu'à 16383 chiffres après la virgule
réel 4 octets Décimale à précision variable. Précision à 6 chiffres décimaux
double précision 8 octets Décimale à précision variable. Précision de 15 chiffres décimaux
petite série 2 octets Petit entier auto-incrémenté. 1 à 32767
série 4 octets Entier auto-incrémenté moyen. 1 à 2147483647
grande série 8 octets Grand entier auto-incrémenté. 1 à 9223372036854775807

Monétaire

Le type de données monétaires stocke une somme d'argent numérique avec une précision fractionnaire fixe. Ce type stocke jusqu'à 8 octets de données avec une plage de -92233720368547758.08 à +92233720368547758.07 et utilise numérique , entier , et bigint types de données en tant que valeurs.

Date/Heure

PostgreSQL prend en charge tous les types de données de date et d'heure SQL standard , avec une résolution de 1 microseconde ou 14 chiffres. La date est la seule exception, avec une résolution d'un jour, compté selon le calendrier grégorien :

Nom Taille de stockage Description Plage
horodatage 8 octets Date et heure, sans fuseau horaire. 4713 avant JC à 294276 après JC
horodatagez 8 octets Date et heure, avec fuseau horaire. 4713 avant JC à 294276 après JC
date 4 octets Date. 4713 avant JC à 294276 après JC
heure sans fuseau horaire 8 octets Heure de la journée, sans fuseau horaire. 00:00:00 à 24:00:00
heure avec fuseau horaire 12 octets Heure de la journée, avec fuseau horaire. 00:00:00 + 1459 à 24:00:00-1459
intervalle 12 octets Intervalle de temps. -178000000 à 178000000 ans

Binaire

PostgreSQL peut enregistrer des chaînes binaires de longueur variable en tant que type de données bytea , prenant 1 ou 4 octets plus la taille de la chaîne binaire réelle.

Booléen

Un type de données booléen est déclaré en utilisant bool ou boolean mots clés. Il peut contenir vrai (1) , faux (0) , ou inconnu (null) valeurs.

Énuméré

Types de données énumérées consistent en un ensemble statique et ordonné de valeurs, telles que des nombres de 1 à 10 ou des mois de l'année. Contrairement aux autres types de données, vous pouvez créer des types énumérés à l'aide du create type commande :

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

Chaîne de bits

Type de chaîne de bits stocke des chaînes de 1 et de 0, utilisées pour stocker ou visualiser les masques de bits :

Nom Description
bit(n) Stocke une chaîne de bits avec une longueur fixe de n caractères.
variant(n) Stocke une chaîne de bits d'une longueur variable, jusqu'à n caractères.

UUID

Un UUID (Universally Unique Identifiers) est un ensemble de 32 chiffres créé par un algorithme. Il se compose de plusieurs groupes de quatre, huit et douze chiffres, séparés par des tirets :

Adresse réseau

PostgreSQL utilise des types de données d'adresse réseau pour stocker les adresses IPv4, IPv6 et MAC :

Nom Taille de stockage Description
cidr 7 ou 19 octets Stocke les réseaux IPv4 et IPv6.
inet 7 ou 19 octets Stocke les hôtes et les réseaux IPv4 et IPv6.
macaddr 6 octets Stocke les adresses MAC.

L'utilisation de types de données d'adresse réseau présente plusieurs avantages par rapport à l'utilisation de texte brut. Cela inclut l'économie d'espace de stockage, des fonctions et commandes spécialisées et une vérification plus facile des erreurs.

Recherche textuelle

Type de données de recherche textuelle permet de rechercher la meilleure correspondance dans une collection de documents en langage naturel :

Nom Description
tsvector Représente un document optimisé pour la recherche de texte, avec une liste de mots distincts normalisés pour fusionner différentes variantes du même mot (lexèmes).
tsquery Stocke les mots-clés qui doivent être recherchés et les combine à l'aide d'opérateurs booléens (AND, OR et NOT).

Géométrique

Types de données géométriques représentent des objets spatiaux rendus en deux dimensions, tels que des points, des lignes et des polygones :

Nom Taille de stockage Représentation Description numérique
point 16 octets Point sur un plan. (x,y)
ligne 32 octets Ligne infinie. ((x1,y1),(x2,y2))
lseg 32 octets Segment de droite fini. ((x1,y1),(x2,y2))
boîte 32 octets Boîte rectangulaire. ((x1,y1),(x2,y2))
chemin 16+16n octets Chemin ouvert ou fermé. ((x1,y1),...(xn,yn))
polygone 40+16n octets Polygone. ((x1,y1),...(xn,yn))
cercle 24 octets Cercle. ((x,y),r) (centre et rayon)

XML

PostgreSQL vous permet d'enregistrer des données XML en tant que type de données XML en utilisant le XMLPARSE fonction :

XMLPARSE (DOCUMENT [document name] WELLFORMED)

ou :

XMLPARSE (CONTENT [XML content] WELLFORMED)

Où :

  • [document name]  :Un document XML à racine unique.
  • [XML content] :valeur XML valide
  • WELLFORMED :Cette option garantit que [nom du document] ou [contenu XML] sera résolu en un document XML bien formé. Utilisez-le uniquement lorsque vous ne voulez pas que la base de données vérifie si l'entrée est bien formée.

JSON

PostgreSQL propose deux types de données JSON :

  • json : Une extension du type de données texte avec validation JSON. Ce type de données enregistre les données exactement telles qu'elles sont (y compris les espaces). Vous pouvez l'insérer rapidement dans la base de données, mais sa récupération est relativement lente en raison du retraitement.
  • jsonb : Représente les données JSON dans un format binaire. Plus lent à insérer dans la base de données, mais la prise en charge de l'indexation et l'absence de retraitement accélèrent considérablement la récupération.

Tableau

Le type de données tableau vous permet de définir une colonne d'une table en tant que tableau multidimensionnel pouvant utiliser n'importe quel type de données de base, énuméré ou composite. Vous pouvez déclarer, modifier et rechercher des tableaux comme vous le feriez pour n'importe quelle autre colonne de la base de données.

Composé

Types de données composites permettent d'utiliser une ligne ou un enregistrement d'une table comme élément de données. Semblable aux types de données de tableau, vous pouvez également déclarer, rechercher et modifier des valeurs composites.

Plage

Types de données de plage utiliser des plages discrètes ou continues d'autres types de données. Les types de données de plage intégrés incluent :

Nom Description
int4range Plage d'entiers de taille moyenne.
int8range Plage de grands nombres entiers.
numrange Plage de décimales de précision spécifiées par l'utilisateur.
étrange Plage d'heures et de dates sans fuseau horaire.
tstzrange Plage d'heures et de dates avec un fuseau horaire.
plage de dates Plage de dates.

Vous pouvez également créer des types de plage personnalisés en utilisant d'autres types de données comme base.

Identifiant d'objet

PostgreSQL utilise des identifiants d'objets comme systèmes de clés primaires lors de l'exécution d'opérations d'entrée et de sortie spécialisées :

Nom Références Description
oid tout Identifiant d'objet numérique.
regproc pg_proc Nom de la fonction.
regprocedure pg_proc Fonction avec des types d'arguments.
register pg_operator Nom de l'opérateur.
régérateur pg_operator Opérateur avec types d'arguments.
regclass pg_class Nom de la relation.
regtype pg_type Nom du type de données.
regconfig pg_ts_config Configuration de la recherche de texte.
réglementaire pg_ts_dict Dictionnaire de recherche de texte.

Pseudo-types

Les pseudo-types sont une collection d'entrées spéciales pour déclarer l'argument ou le type de résultat d'une fonction :

Nom Description
tout La fonction accepte n'importe quel type de données d'entrée.
n'importe quel élément La fonction accepte n'importe quel type de données.
n'importe quel tableau La fonction accepte n'importe quel type de données de tableau.
anynonarray La fonction accepte tout type de données non tableau.
numéro La fonction accepte tous les types de données énumérés.
n'importe où La fonction accepte n'importe quel type de données de plage.
cstring La fonction accepte ou renvoie une chaîne C terminée par un caractère nul.
interne La fonction accepte ou renvoie le type de données interne au serveur.
language_handler La fonction renvoie le gestionnaire de langue.
fdw_handler Un gestionnaire d'encapsuleur de données distantes renvoie fdw_handler.
enregistrement Recherche une fonction qui renvoie un type de ligne non spécifié.
déclencheur Une fonction déclencheur renvoie un déclencheur.
annuler La fonction ne renvoie aucune valeur.

Ubuntu
  1. PostgreSQL vs MySQL :une comparaison détaillée

  2. Types de données Cassandra :intégrés, de collecte et définis par l'utilisateur

  3. Comment configurer postgresql pour la première fois ?

  4. Copier n octets de données x dans le fichier

  5. Chronométrer le temps d'exécution de plusieurs commandes

Qu'est-ce que la réplication de données ? {Types et schémas de réplication expliqués}

Installation d'Ubuntu 20.04 PostgreSQL

Installation d'Ubuntu 22.04 PostgreSQL

Le temps du système

L'indicateur de temps n'affiche pas la date/l'heure ?

Comment :Introduction à la programmation - Variables, types et manipulation de données