Types de données PostgreSQL: Caractère - Numérique - Binaire - Booléen

Table des matières:

Anonim

PostgreSQL offre un riche ensemble de types de données natifs pour les utilisateurs. Les utilisateurs peuvent ajouter de nouveaux types à l'aide de la commande CREATE TYPE. Cela rend également les requêtes plus simples et plus lisibles.

Types de données dans PostgreSQL

PostgreSQL prend en charge les types de données suivants:

  • Types de texte
  • Types numériques
  • Dates et heures
  • XML
  • JSON
  • Booléen
  • Morceaux
  • Données binaires
  • Réseau
  • Tableaux
  • Créez votre type de données
  • Booléen
  • Temporel
  • UUID
  • Déployer
  • JSON
  • Types de données spéciaux pour stocker une adresse réseau et des données géométriques.

Étudions en détail les types de données PostgreSQL

  • Types de données de caractères
  • Types de données numériques
  • Types de données binaires
  • Type d'adresse réseau
  • Type de recherche de texte
  • Types de données date / heure
  • Type booléen
  • Types de données géométriques
  • Types énumérés
  • Type de gamme
  • Type d'UUID
  • Type XML
  • Type JSON
  • Pseudo-types

Types de données de caractères

PostgreSQL prend en charge les types de données caractère pour stocker les valeurs de texte. PostgreSQL construit des types de données de caractères à partir des mêmes structures internes. PostgreSQL propose trois types de données de caractères: CHAR (n), VARCHAR (n) et TEXT.

Nom Description
varchar (n) Vous permet de déclarer une longueur variable avec une limite
Caractère (n) Longueur fixe, rembourré blanc
Texte L'utilisation peut utiliser ce type de données pour déclarer une variable de longueur illimitée

Types de données numériques

PostgreSQL prend en charge deux types de nombres distincts:

  • Entiers
  • Nombres à virgule flottante
Nom Taille du magasin Varier
smallint 2 octets -32768 à +32767
entier 4 octets -2147483648 au +2147483647
bigint 8 octets -9223372036854775808 à 9223372036854775807
décimal variable Si vous l'avez déclaré en tant que type de données décimal, il va de 131072 chiffres avant la virgule décimale à 16383 chiffres après la virgule décimale
numérique variable Si vous le déclarez comme nombre, vous pouvez inclure le nombre jusqu'à 131072 chiffres avant la virgule décimale à 16383 chiffres après la virgule décimale
réel 4 octets Précision à 6 chiffres décimaux
double 8 octets Précision de 15 chiffres décimaux

Types de données binaires

Une chaîne binaire est une séquence d'octets ou d'octets. Les types de données binaires Postgres sont divisés de deux manières.

  • Les chaînes binaires permettent de stocker les cotes de valeur zéro
  • Octets non imprimables

Les chaînes de caractères n'autorisent pas zéro octet et interdisent également toutes les autres valeurs d'octets et séquences qui ne sont pas valides selon les règles de codage du jeu de caractères de la base de données.

Nom Taille de stockage Description
Octet 1 à 4 octets plus la taille de la chaîne binaire Chaîne binaire de longueur variable

Type d'adresse réseau

De nombreuses applications stockent des informations réseau telles que l'adresse IP des utilisateurs ou

capteurs. PostgreSQL a trois types natifs qui vous aident à optimiser les données du réseau.

Nom Taille Description
Cidre 7 ou 19 byes Réseaux IPV4 et IPv6
Inet 7 ou 19 octets Hôte et réseaux IPV4 et IPV5
macaddr 6 octets Adresses MAC

L'utilisation des types d'adresses réseau présente les avantages suivants

  1. Économie d'espace de stockage
  2. Vérification des erreurs d'entrée
  3. Fonctions telles que la recherche de données par sous-réseau

Type de recherche de texte

PostgreSQL fournit deux types de données conçus pour prendre en charge la recherche en texte intégral. La recherche en texte intégral consiste à rechercher dans une collection de documents en langage naturel pour rechercher ceux qui correspondent le mieux à une requête.

  • Recherche de texte Tsvector Les types de variables PostgreSQL représentent un document sous une forme optimisée pour la recherche de texte
  • La recherche de texte de type de requête stocke les mots-clés qui doivent être recherchés

Types de données date / heure

L'horodatage PostgreSQL offre une précision de la microseconde au lieu d'une seconde précision. De plus, vous avez également la possibilité de stocker avec le fuseau horaire ou sans. PostgreSQL convertira l'horodatage avec le fuseau horaire en UTC en entrée et le stockera.

La date et l'heure sont acceptées dans divers formats, y compris Postgres traditionnel, ISO 8601. Compatible SQL, etc.

PostgreSQL prend en charge la commande jour / mois / année. Les formats pris en charge sont DMY, MDY, YMD

Types de données temporelles

Nom Taille Varier Résolution
Horodatage sans fuseau horaire 8 octets De 4713 avant JC à 294276 après JC 1microseconde / 14 chiffres
Horodatage avec fuseau horaire 8 octets De 4713 avant JC à 294276 après JC 1microseconde / 14 chiffres
Date 4 octets De 4713 avant JC à 294276 après JC Un jour
Heure sans fuseau horaire 8 octets 00:00:00 à 24:00:00 1microseconde / 14 chiffres
Heure avec fuseau horaire 12 octets 00:00:00 + 1459 à 24: 00: 00-1459 1microseconde / 14 chiffres
Intervalle 12 octets -178000000 à 178000000 ans 1microseconde / 14 chiffres

Exemples:

Saisir Description
07/09/2025 ISO 8601, 7 septembre avec n'importe quel style de date (format recommandé)
7 septembre 2025 7 septembre avec n'importe quel style de date
07/09/2025 7 septembre avec MDY, 9 juillet avec DMY
07/09/25 7 septembre 2025, avec MDY
2025-sept.-7 7 septembre avec n'importe quel style de date
7 sept. 2018 7 septembre avec n'importe quel style de date
7 sept. 25 7 septembre 2025, avec YMD
20250907 ISO 8601,7 Sep 20225 dans n'importe quel mode
2025.250 année et jour de l'année, dans ce cas, 7 sept 2025
J25250 Date julienne

Heure / heure avec entrée de fuseau horaire

Saisir Description
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11 h 19 Identique à 11:19
23h19 idem 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, identique à 23 h 19 HNE
23:19 EST fuseau horaire spécifié comme EST, identique à 23 h 19 HNE

Type booléen

Un type de données booléen peut contenir

  • Vrai
  • Faux
  • nul

valeurs.

Vous utilisez un bool ou booléen mot - clé pour déclarer une colonne avec le type de données booléen.

Lorsque vous insérez des valeurs dans une colonne booléenne, Postgre convertit des valeurs telles que

  • Oui
  • y
  • 1
  • t
  • vrai

en 1.

Alors que des valeurs comme

  • Non
  • N
  • 0
  • F
  • Faux

sont convertis en 0

Lors de la sélection des données, les valeurs sont à nouveau reconverties en yes, true, y, etc.

Types de données géométriques

Les types de données géométriques représentent des objets spatiaux bidimensionnels. Ils aident à effectuer des opérations telles que les rotations, la mise à l'échelle, la traduction, etc.

Nom Taille de stockage Représentation Description
Point 16 octets Point sur un avion (x, y)
Ligne 32 octets Ligne infinie ((xl.yl). (x2.y2))
Lseg 32 octets Segment de ligne finie ((xl.yl). (x2.y2))
Boîte 32 octets Boîte rectangulaire ((xl.yl). (x2.y2))
Chemin 16n + 16n octets Fermer et ouvrir le chemin ((xl.yl),…)
Polygone 40 + 16n octets Polygone [(xl.yl)….]
Cercle 24 octets Cercle <(xy) .r> (point central et rayon)

Types énumérés

Le type de données PostgreSQL énuméré est utile pour représenter des informations rarement changeantes telles que le code du pays ou l'identifiant de la succursale. Le type de données énuméré est représenté dans une table avec des clés étrangères pour garantir l'intégrité des données.

Exemple:

La couleur des cheveux est assez statique dans une base de données démographique

CREATE TYPE hair_color AS ENUM('brown','black','red','grey','blond')

Type de gamme

De nombreuses applications métier nécessitent des données par plages. En règle générale, deux colonnes (exemple: date de début, date de fin) sont définies pour traiter les plages. Ceci est à la fois inefficace et difficile à maintenir.

Postgre a construit des types de plage comme suit

  • int4range - Afficher la plage d'entiers
  • int8range - Plage d'affichage de bigint
  • numrange - Affiche la plage numérique
  • tstrange - Vous aide à afficher l'horodatage sans fuseau horaire
  • étrange - Vous permet d'afficher l'horodatage avec le fuseau horaire
  • plage de dates - Plage de dates

Type d'UUID

L'UUID (Universally Unique Identifies) est une quantité de 128 bits générée par un algorithme. Il est très peu probable que le même identifiant soit généré par une autre personne dans le monde en utilisant le même algorithme. C'est pourquoi pour les systèmes distribués, ces identifiants sont un choix idéal car ils offrent un caractère unique au sein d'une seule base de données. Un UUID est écrit sous la forme d'un groupe de chiffres hexadécimaux minuscules, avec divers groupes séparés par des tirets.

PostgreSQL a un type de données UUID natif qui consomme 16 octets de stockage… UUID est un type de données idéal pour les clés primaires.

Exemple:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Postgre accepte également des formes alternatives d'entrées UUID comme toutes les majuscules, pas de traits d'union, d'accolades, etc.

Type XML

PostgreSQL vous permet de stocker des données XML dans un type de données, mais ce n'est rien de plus qu'une extension d'un type de données texte. Mais l'avantage est qu'il vérifie que le XML d'entrée est bien formé.

Exemple:

XMLPARSE (DOCUMENT 'Data Type')

Type JSON

Pour stocker des données JSON, PostgreSQL propose 2 types de données

  1. JSON
  2. JSONB
json Jsonb
Une simple extension d'un type de données texte avec validation JSON Une représentation binaire des données JSON
L'insertion est rapide mais la récupération des données est relativement lente. L'insertion est lente mais sélectionnez (la récupération des données est rapide)
Enregistre les données saisies exactement comme elles incluent les espaces. Prend en charge l'indexation. Peut optimiser l'espace blanc pour accélérer la récupération.
Retraitement lors de la récupération des données Aucun retraitement requis lors de la récupération des données

Le type de données JSON le plus largement utilisé utilise jsonb, sauf s'il existe un besoin spécialisé d'utiliser le type de données JSON.

Exemple:

CREATE TABLE employee (id integer NOT NULL,age integer NOT NULL,data jsonb);
INSERT INTO employee VALUES (1, 35, '{"name": "Tom Price", "tags": ["Motivated", "SelfLearner"], "onboareded": true}');

Pseudo-types

PostgreSQL a de nombreuses entrées spéciales appelées pseudo-types. Vous ne pouvez pas utiliser des pseudo-types comme types de colonnes PostgreSQL. Ils sont utilisés pour déclarer l'argument ou le type de retour d'une fonction.

Chacun des pseudo-types disponibles est utile dans les situations où les documents de comportement d'une fonction ne correspondent pas simplement à la prise ou au retour d'une valeur d'un type de données SQL spécifique.

Nom Description
Tout La fonction accepte tous les types de données d'entrée.
Un tableau La fonction accepte tout type de données de tableau.
Tout élément La fonction accepte n'importe quel type de données.
Toute énumération La fonction accepte tout type de données enum.
Nonarray La fonction accepte tout type de données non-tableau.
C chaîne La fonction accepte ou renvoie une chaîne C terminée par NULL.
Interne La fonction interne accepte ou renvoie le type de données interne au serveur.
Language_handler Il est déclaré renvoyer le gestionnaire de langue.
Record Recherchez une fonction qui renvoie un type de ligne non spécifié.
Gâchette Une fonction de déclenchement est utilisée pour renvoyer le déclencheur.

Il est important que l'utilisateur qui utilise cette fonction doit s'assurer que la fonction se comportera de manière sécurisée lorsqu'un pseudo-type est utilisé comme type d'argument.

Bonnes pratiques d'utilisation des types de données

  • Utilisez le type de données "texte" sauf si vous souhaitez limiter l'entrée
  • N'utilisez jamais «char».
  • Les entiers utilisent "int". N'utilisez bigint que lorsque vous avez de très gros chiffres
  • Utilisez "numérique" presque toujours
  • Utilisez float dans PostgreSQL si vous avez une source de données IEEE 754

Résumé

  • PostgreSQL offre un riche ensemble de types de données natifs pour les utilisateurs
  • PostgreSQL prend en charge les types de données de caractère pour stocker des valeurs de texte
  • PostgreSQL prend en charge deux types de nombres distincts: 1. Les nombres entiers, 2. Les nombres à virgule flottante
  • Une chaîne binaire est une séquence d'octets ou d'octets
  • PostgreSQL dispose d'un type d'adresse réseau pour vous aider à optimiser le stockage des données réseau
  • Recherche de texte Les structures de données PostgreSQL sont conçues pour prendre en charge la recherche de texte intégral
  • Les types de données PSQL Date / Heure permettent des informations de date et d'heure dans divers formats
  • Les types de champ Boolean Postgres peuvent contenir trois valeurs 1. True 2. False 3. Null
  • Les types de données Geometric PostgreSQL représentent des objets spatiaux bidimensionnels
  • Les types de données énumérés dans PostgreSQL sont utiles pour représenter des informations rarement changeantes telles que le code du pays ou l'identifiant de la succursale
  • L'UUID (Universally Unique Identifies) est une quantité de 128 bits générée par un algorithme
  • PostgreSQL a de nombreuses entrées spéciales appelées pseudo-types
  • Il est recommandé d'utiliser le type de données "texte", sauf si vous souhaitez limiter l'entrée