PostgreSQL

Type de données et fonctions PostgreSQL JSONB

Type de données et fonctions PostgreSQL JSONB

Comme dans le 9.Version 2, PostgreSQL a ajouté un type de données JSON assez basique. Sous la couverture, le type de données JSON est du texte, avec une vérification que la mise en page est peut-être correcte. Entrée JSON similaire à XML. Finalement, l'équipe a découvert que le volume de traitement JSON et de recherche spécialisée nécessaires dans PostgreSQL aurait été difficile ou rationnel à appliquer sur un type de données textuel. Par conséquent, ils ont créé une représentation binaire du type de données JSON avec une gamme complète d'opérateurs et de méthodes. Voici le type de données JSONB. Le type de données JSONB est en effet une disposition de stockage binaire polyvalente avec une capacité complète de traitement, d'indexation et de recherche. En conséquence, il pré-traite les informations JSON dans une mise en page interne, qui n'a qu'une valeur par clé et ignore les espaces ou dépressions supplémentaires, ou vous pouvez dire indentation. Dans ce guide, vous apprendrez comment interagir avec le formulaire de données JSONB dans PostgreSQL, ainsi que quelques opérateurs et méthodes pratiques pour traiter les données JSONB.

Le type de données dont vous aurez probablement besoin et que vous choisirez d'utiliser est JSONB, et non la version antérieure de JSON, qui n'est utilisée que pour la compatibilité descendante. Alors, ouvrez le shell de commande PostgreSQL et fournissez les noms, la base de données, le port et le nom d'utilisateur du serveur.

Exemple 01 :

Voici une brève illustration des variations entre les deux types de données. Nous devons créer une table 'Nouveau' avec l'une de ses colonnes doit être le type de données 'JSON' comme suit :

>> CREATE TABLE New(ID serial PRIMARY KEY, Val JSON);

Insérez des valeurs dans la colonne 'Val'.

>> INSÉRER DANS LES VALEURS New(Val) ('[1, 2, 3, 4]'), ('[10, 11, 12, 13]'), ('"clé": "valeur"') ;

Utilisation de l'opérateur '@>'

Une fois que nous essayons de rechercher des entrées avec un entier dans la liste des colonnes « extra », nous obtenons toujours un message d'erreur comme annexé ci-dessous.

>> SELECT * FROM New WHERE Val @> '11';

Oui. JSON n'est que du texte et n'est pas très efficace, et il ne contient pas de configuration d'opérateur. Laissez le contenu est changé en jsonb.

>> ALTER TABLE Nouveau ALTER COLUMN Val TYPE JSONB;

Exécutez maintenant la même requête dans le shell, et le résultat affiche une ligne portant le numéro « 11 » dans son tableau, comme indiqué ci-dessous.

>> SELECT * FROM New WHERE Val @> '11';

Exemple 02 :

Créons une table 'Bag' à utiliser dans nos illustrations jusqu'à ce que nous commencions à parler des méthodes et opérateurs utilisables pour le type de données PostgreSQL JSONB. L'une de ses colonnes, e.g. 'Marque' doit être le type de données 'JSONB' comme suit :

>> CREATE TABLE Bag (ID série PRIMARY KEY, marque JSONB NOT NULL);

Nous utiliserons la déclaration SQL INSERT suivante pour ajouter des informations dans la table PostgreSQL 'Bag' :

>> INSÉRER DANS LES VALEURS DU SAC (MARQUE) ('"name": "Gucci", "color": ["red", "black"], "price": 10000,  "sold": true,]') , ('"name": "Allure", "color": ["red", "Grey"], "price": 85000,  "sold": false,]'), ('"name": "Kidza", "color": ["black", "white"], "price": 75000,  "sold": true,]');

Vous pouvez voir que les données ont été ajoutées sous la forme d'un dictionnaire, e.g., clés et valeurs.

Les éléments de ce tableau 'Bag' peuvent être vus à l'aide d'une phrase SELECT, comme on le voit ci-dessous :

>> SÉLECTIONNER * À PARTIR DU SAC ;

Utilisation de l'opérateur '->'

Cherchons les valeurs dans la colonne 'Marque' via la clé 'nom' en utilisant l'opérateur '->' dans notre requête.  Il récupérera tous les enregistrements de la clé "nom" de la colonne "Marque". La sortie sera affichée dans la nouvelle colonne « marque ». La sortie finale apparaîtra comme annexé ci-dessous. Comme vous pouvez le voir, nous avons trois valeurs : 'Gucci, Allure, kidza' pour la clé 'name'.

>> SELECTIONNER Marque -> 'nom' COMME marque FROM Sac;

Utilisation de l'opérateur '->' à l'aide de la clause WHERE

Récupérons toutes ces lignes de la table 'Bag' où la colonne 'Brand' a la valeur 'true' pour sa clé 'sold'. La requête pour cette sélection est la suivante :

>> SELECT * FROM Bag WHERE  Brand -> 'sold' = 'true';

Là, vous voyez, la requête n'a récupéré que deux lignes de la table 'Bag' car elle n'a que deux lignes ayant la valeur 'true' pour la clé 'sold'.

Fonctions PostgreSQL JSONB :

Avec les informations JSONB, il semble y avoir une variété de méthodes intégrées qui peuvent être utilisées. Regardons-les un par un.

JSONB chaque fonction :

La fonction JSONB Each prend les données et les convertit en la paire clé_valeur. Considérez la requête suivante de la méthode jsonb_each où nous avons fourni des valeurs. Les données JSON de plus haut niveau sont développées en une série de combinaisons clé-valeur dans le résultat. Nous avons deux paires clé-valeur, comme indiqué ci-dessous.

>> SELECT jsonb_each('"name": "Allure", "sold": "true"'::jsonb );

Fonction de clés d'objet JSONB :

Maintenant, nous allons jeter un oeil à la fonction Jsonb_object_keys. Cette fonction prend les données, et elle-même sépare et identifie les valeurs clés qu'il contient. Essayez la requête SELECT ci-dessous, dans laquelle nous avons utilisé la méthode jsonb_object_keys et fourni quelques valeurs. Cette méthode ne renverra que les clés du document JSON de plus haut niveau pour les données particulières, comme indiqué ci-dessous.

>> SELECT jsonb_object_keys('"name": "kidza", "sold": "true"'::jsonb );

Fonction de chemin d'extraction JSONB :

La fonction JSONB Extract Path prend le chemin pour afficher la valeur dans le résultat. Essayez la requête ci-dessous dans le shell de commande, où nous avons fourni 'brand' comme chemin d'accès à la méthode JSONB jsonb_extract_path. À partir de la sortie présentée dans l'image ci-dessous, vous pouvez voir que le « Gucci » est une valeur renvoyée au chemin « nom ».

>> SELECT jsonb_extract_path('"nom": "Gucci", "vendu": true'::jsonb, 'nom');

Jolie fonction JSONB :

Si vous souhaitez afficher vos fichiers JSON avec une mise en page facile à lire, la fonction JSONB Pretty est la meilleure option. Essayez la requête ci-dessous et vous obtiendrez une sortie simple.

>> SELECT jsonb_pretty('"name": "Allure", "sold": false'::jsonb);

Conclusion:

Lorsque vous stockez des informations JSONB dans les bases de données PostgreSQL, vous obtenez le meilleur résultat possible : la simplicité et la fiabilité d'une base de données NoSQL combinées aux avantages d'une base de données relationnelle. En utilisant de nombreux opérateurs et méthodes, nous avons montré comment utiliser PostgreSQL JSONB. Vous serez capable de travailler avec des données JSONB en utilisant nos illustrations comme référence.

Comment changer les boutons gauche et droit de la souris sur un PC Windows 10
Il est tout à fait normal que tous les appareils de souris d'ordinateur soient conçus de manière ergonomique pour les droitiers. Mais il existe des so...
Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...